2011-04-04 1 views
0

Je me rends fou en essayant de modifier un morceau de code PHP fourni par mon développeur de panier car ils sont actuellement très occupés, mais malheureusement, je n'ai aucune expérience avec php, car je J'ai seulement traité du HTML auparavant. Le code est conçu pour appeler la base de données de produits sur un article ajouté au panier afin d'en retirer un de l'inventaire principal.php newbie cherche inventaire quantité codage conseil

Le code que j'ai commencé avec est ceci:

<?php 
$HTML = ""; 
// Get all specific result from the "inventory" table 
$result = mysql_query("SELECT * FROM inventory WHERE catagory='catname'") or die(mysql_error()); 
while($row = mysql_fetch_array($result)){ 
    if($row['instock'] != 0){ 

$HTML .= <<< eof 
<option cost="$row[listPrice]" id_num="$row[itemid]" name="$row[itemName]">$row[description]</option> 
eof; 
} 
} 
echo $HTML; 


?> 

Cependant, je ne veux pas que les clients soient en mesure d'ajouter des éléments au panier si le numéro « inStock » est 0 ou moins (parce que nous avons gagné » t ont tout à vendre!) Avec ma compréhension limitée et quelques recherches, je pense que je dois ajouter un autre ou elseif quelque part ici, le long des lignes de

elseif($row['instock'] <= 0) 
{ 
echo 'Sorry this item is out of stock.' 
} 

Cependant, partout où je semble le mettre I toujours finir avec une erreur de syntaxe chaque fois que j'essaie d'exécuter le script. J'ai essayé de comprendre comment fonctionnent toutes les accolades et $ HTML mais je suis totalement perdu! Je me demande également si j'ai besoin de quelque chose de plus, car chaque article a une boîte de saisie de texte qui est complétée avant que les articles soient ajoutés au panier, donc je pense que quelque chose pourrait être nécessaire pour être ajouté de sorte que si un client entre un nombre dans la boîte qui est plus que ce qui est en stock et clique sur "ajouter au panier", ils auront une sorte de popup pour leur dire qu'ils ont choisi plus que ce qui est actuellement disponible. Si oui, j'aimerais avoir quelques conseils sur la façon de le faire aussi!

Merci d'avance!

Répondre

1

La logique que vous désirez est déjà là:

if($row['instock'] != 0){ 

Supposant instock est un certain nombre d'unités dans le nombre d'actions, et en supposant que votre système d'inventaire va jamais en dessous de zéro, ce test fait ce que vous voulez.

Si vous voulez dire que vous voulez ajouter un explicite hors stock message, quelque chose comme cela devrait fonctionner

while($row = mysql_fetch_array($result)){ 
    if($row['instock'] != 0) { 
     $HTML .= <<< eof 
<option cost="$row[listPrice]" id_num="$row[itemid]" name="$row[itemName]">$row[description]</option> 
eof; 
     } 
    else 
     $HTML .= 'Sorry this item is out of stock.'; 
} 
echo $HTML; 
+0

Je suppose que 'instock' est le nombre d'unités en stock (ce code a été écrit par un tiers), il semble être. Mon inventaire peut montrer des nombres moins si plus a été acheté que disponible, mais j'achète plus que ce qui est disponible est ce que j'essaye d'empêcher :) – Kat

+0

Si cela cas, changez la comparaison à 'if ($ row ['instock'] > 0) 'de sorte que les quantités négatives n'indiquent pas la disponibilité. – wallyk

1

il suffit d'ajouter un ; à la fin de votre déclaration echo.