Cod php transformare monede in serviciu VIP

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
cadou
Mesaje: 321

Cod php transformare monede in serviciu VIP

Lucrez la un cod care sa faca urmatorul lucru:
Utilizatorul X ce intra pe profilul Y vrea sa cumpere un serviciu pentru utilizatorul Y.

La crearea acestui cod php am ajuns si m-am impotmolit pe aici :

Cod: Selectaţi tot

   public function gift_service()
    {
        if(! IS_AJAX)
        {
            redirect() ;
        }
      
        $for               = (int)$this->input->post('for',TRUE) ;
        $from               = (int)$this->input->post('from',TRUE) ;
        $service             = $this->input->post('serv',TRUE) ;
		$array_service = array(vip, dublu, invizibil, activitate);
		$array_price = array(config_item('vip_price'),config_item('dp_price'),config_item('in_price'),config_item('ap_price'));

		if($for == 0 || $from == 0 || $service == null || ! in_array($service,$array_service, true))
        {
            exit('Nu putem executa cererea') ;
        }
		
		if($for !== 0 && $from !== 0 && $service !== null && in_array($service,$array_service, false))
		{
		if($service == in_array($service,$array_service))
		{
        $have_coins = $this->user->get_coins($from) ;
// aici nu am idee cum as putea sa vad daca are suficiente monede pentru a cumpara serviciul selectat //

		}
		
		else
		{
		exit('Nu ai ce cauta');
		}
		}
	
	exit('SUCCESS') ; 
	}
Ceea ce nu am idee este cum as putea sa vad daca have_coins > array_price.
Daca cineva alege sa ofere cuiva serviciul VIP sa se aleaga suma de monede pentru VIP.
$service = de aici se preia ce serviciu vrea sa ofere cadou cuiva.

Sper sa fi explicat cum trebuie :)

MarPlo
Daca pretul pt. VIP se obtine cu: config_item('vip_price'), conform codului, acea valoare e retinuta in $array_price[0].
Verifici acea valoare in raport cu $have_coins.
Cam asa:

Cod: Selectaţi tot

if($have_coins<$array_price[0]) exit('Nu aveti suficiente monede');

cadou
ideea este ca preia doar prima valoare din array , adica daca cineva alege serviciul al 3 lea ce corespunde cu suma monedelor cu locul 3 din array_price , el verifica tot prima valoare din array cand se executa conditia have_coins<array_price[0] ...

MarPlo
Preia intai indexul serviciului din array-ul $array_service (cu array_search() ), iar daca ordinea corespunde cu valorile din $array_price, ar trebui sa functioneze asa:

Cod: Selectaţi tot

$ix_serv = array_search($service, $array_service);
if($have_coins<$array_price[$ix_serv]) exit('Nu aveti suficiente monede');

cadou
Am rezolvat-o in modul acesta:

Cod: Selectaţi tot

        $service_to_coins	= array('vip'=>config_item('vip_price'),'dublu'=>config_item('dp_price'),'invizibil'=>config_item('in_price'),'activitate'=>config_item('ap_price')) ;
        $valid_services = array() ;

        foreach($service_to_coins AS $key => $value)
        {
            array_push($valid_services,$key) ;
        }
       
        if($coins < $service_to_coins[$services])
        {
            exit('Nu ai suficiente Monede Bree pentru a cumpara acest serviciu!<br />&nbsp;&nbsp;&nbsp;<a href="'.site_url('credit').'">Incarca-ti contul</a>') ;
        }       
M-am chinuit cateva ore bune, am gasit un exemplu si am facut pe baza acelui exemplu, tot codul este de cateva sute de linii :)
Pana la urma am terminat ceea ce vroiam sa fac cu aceste servicii ... :)
Multumesc pentru ajutor