Php feltetel valtoztatas? <Megoldva>

Sziasztok. Olyan prolémában kérném a segitsegeteket hogy van egy webshoppom amiben mar meg van a minimum rendelés határozva de en ugy szeretném átirni hogy ez ne minimum rendelés hanem rendelési egység legyen., tehát csak 20asaval vagy 30asaval lehessen rendelni.
Ez a kodreszlet ami szerintem eldonti ezt. Probalkoztam a %-os osztast megvalositani de sajnos a tudasom nem eleg hozza

//Minimum quantity code
if(MINIMUM_ORDERS == 'true'){
$min_order_query = tep_db_query("select p.minorder as min_quant FROM " . TABLE_PRODUCTS . " p where p.products_id = '".$products[$i]['id']."'");
while ($min_order = tep_db_fetch_array($min_order_query)) {
if ($products[$i]['quantity'] < $min_order['min_quant'] ) {
$products[$i]['min_quant']=$min_order['min_quant'];
}
}
if ($products[$i]['quantity'] < $products[$i]['min_quant'] ) {
$products[$i]['quantity']=$products[$i]['min_quant'];
$cart->add_cart($products[$i]['id'],$products[$i]['quantity'],$products[$i]['attributes']);
$cart_notice = sprintf(MINIMUM_ORDER_NOTICE, $products[$i]["name"], $products[$i]["min_quant"]);
}
}
//End Minimum quantity code

Remelem tud vki nekem segiteni. koszonom

Hozzászólások


//Minimum quantity code
if(MINIMUM_ORDERS == 'true'){
$min_order_query = tep_db_query("select p.minorder as min_quant FROM " . TABLE_PRODUCTS . " p where p.products_id = '".$products[$i]['id']."'");
while ($min_order = tep_db_fetch_array($min_order_query)) {
$mennyiseg=ceil($products[$i]['quantity']/$min_order['min_quant']); // minimalis rendeles globalisan
$products[$i]['quantity']=$mennyiseg*$min_order['min_quant'];
if ($products[$i]['quantity'] < $min_order['min_quant'] ) {
$products[$i]['min_quant']=$min_order['min_quant']; // 0 esetere, ha a webaruhazban a 0 ertek nem a termek kosarbol valo eltavolitasat jelenti
}
}
$mennyiseg=ceil($products[$i]['quantity']/$products[$i]['min_quant']); // minimalis rendeles lokalisan (termek szinten)
$products[$i]['quantity']=$mennyiseg*$products[$i]['min_quant'];
if ($products[$i]['quantity'] < $products[$i]['min_quant'] ) {
$products[$i]['quantity']=$products[$i]['min_quant']; // 0 esetere
$cart->add_cart($products[$i]['id'],$products[$i]['quantity'],$products[$i]['attributes']);
$cart_notice = sprintf(MINIMUM_ORDER_NOTICE, $products[$i]["name"], $products[$i]["min_quant"]);
}
}
//End Minimum quantity code

a hiba
Warning: Division by zero in /public_html/webshop/shopping_cart.php on line 156

ami erre sorra ertendo

$mennyiseg=ceil($products[$i]['quantity']/$products[$i]['min_quant']); // minimalis rendeles lokalisan (termek szinten)

Es mostmar a termek arat sem irja ki valamint nemhogy rendelesi egyseget hanem rendelesi minimumot sem hajlando elismerni.

Linux version 2.6.18-6-k7 (Debian etch2)

probald igy... valoszinuleg nincs a termekre beallitva a darabszam, hogy hanyasaval rendelheto...


//Minimum quantity code
if(MINIMUM_ORDERS == 'true'){
$min_order_query = tep_db_query("select p.minorder as min_quant FROM " . TABLE_PRODUCTS . " p where p.products_id = '".$products[$i]['id']."'");
while ($min_order = tep_db_fetch_array($min_order_query)) {
if ($products[$i]['quantity'] < $min_order['min_quant'] ) {
$kert_mennyiseg=$products[$i]['quantity'];
$kulonbseg=$min_order['min_quant']-$kert_mennyiseg;
$products[$i]['quantity']+=$kulonbseg;
//$products[$i]['min_quant']=$min_order['min_quant']; 
// nem kell, mert felulirhatja a termekspecifikus rendelheto darabszamot, helyette csak a minimum rendeleshez meg szukseges darabszamot adjuk hozza a rendelt mennyiseghez.
}
}
if($products[$i]['min_quant']<=0) $products[$i]['min_quant']=1;
$mennyiseg=ceil($products[$i]['quantity']/$products[$i]['min_quant']); // minimalis rendeles lokalisan (termek szinten)
$products[$i]['quantity']=$mennyiseg*$products[$i]['min_quant']; // kovetkezo egesz rendelesi egyseg, ha nem egesz mennyiseget adott volna meg
if ($products[$i]['quantity'] < $products[$i]['min_quant'] ) {
$products[$i]['quantity']=$products[$i]['min_quant']; // 0 esetere
$kulonbseg=$products[$i]['min_quant']-$products[$i]['quantity'];
// $cart->add_cart($products[$i]['id'],$products[$i] ['quantity'],$products[$i]['attributes']);
// vsz elegendo csak a rendelesi egyseghez hianyzo mennyiseget a kosarba helyezni, mert valahol mar add-olnia kellett egyszer...
$cart->add_cart($products[$i]['id'],$kulonbseg,$products[$i]['attributes']);
$cart_notice = sprintf(MINIMUM_ORDER_NOTICE, $products[$i]["name"], $products[$i]["min_quant"]);
}
}
//End Minimum quantity code

Ok ezzel a koddal mar nem ir ki hibauzenetet. DE csak a minimalis egysegnyi rendeles mukodik ugy mint ez elott. Ha 10et adok meg minimumnak akkor ugyan tiznel kevesebbet nem enged vasarolni de ha 11, 14, vagy 37 termeket akarok rendelni azt engedi pedig ugy kellene hogy csak 10, 20, 30, 40

Linux version 2.6.18-6-k7 (Debian etch2)

A vegso megoldas, ha masnak is ilyen gondja lenne:


//Minimum quantity code
		if (MINIMUM_ORDERS == 'true') {
			$min_order_query = tep_db_query ( "select p.minorder as min_quant FROM " . TABLE_PRODUCTS . " p where p.products_id = '" . $products [$i] ['id'] . "'" );
			while ( $min_order = tep_db_fetch_array ( $min_order_query ) ) {
				$products[$i]['min_quant']=$min_order['min_quant'];
			}
			if ($products [$i] ['min_quant'] <= 0)
				$products [$i] ['min_quant'] = 1;
			$mennyiseg = ceil ( $products [$i] ['quantity'] / $products [$i] ['min_quant'] ); // rendelheto csomag merete
			$kulonbseg = $mennyiseg*$products[$i]['min_quant'] - $products[$i]['quantity'];
			if($kulonbseg>0) 
			{
				$products [$i] ['quantity'] = $mennyiseg * $products [$i] ['min_quant']; // kovetkezo egesz rendelesi egyseg, ha nem egesz mennyiseget adott volna meg
				$cart->add_cart ( $products [$i] ['id'], $products[$i]['quantity'], $products [$i] ['attributes'] );
				$cart_notice = sprintf ( MINIMUM_ORDER_NOTICE, $products [$i] ["name"], $products [$i] ["min_quant"] );
				
			}
		}
		//End Minimum quantity code