2013-10-10 2 views
0

J'ai un nom de produit et je veux sélectionner le chemin de téléchargement. Selon elle, je reçois une erreurLe script pdt ne sélectionne pas de db

Warning: mysql_num_rows() attend le paramètre 1 pour être ressource, booléen donné ...

Il est comme il n'y a pas d'entrée.

<?php 
$keyarray=array('num_cart_items'=>2, 'item_name2'=>'5', 'item_name1'=>'6'); 
$itemname=''; 
for ($i=1; $i<= $keyarray['num_cart_items'] ;$i++){ 
     $itemname[]= $keyarray['item_name'.$i];}; 

    foreach($itemname as & $var){ 
    echo $var; 
    $sql = mysql_query("SELECT * FROM products WHERE product_name='$var' "); 
    $productCount = mysql_num_rows($sql); // count the output amount 
    $checkout_path =""; 
    if ($productCount > 0) { 

     // get path 
     $row = mysql_fetch_array($sql); 
       $path = $row["path"]; 
       $checkout_path[]=array('path'=>$path); 

      echo $checkout_path; 
     } 
    } 
    //echo $checkout_path; 
?> 
+0

Quelle est la valeur de 'var' de $? S'il y a de mauvais caractères (comme le guillemet simple), cela va casser votre requête! Vous devriez vraiment utiliser MySQLi/PDO pour pouvoir le préparer. –

+0

Est-ce le script entier? Je ne peux pas voir la chaîne de connexion à la base de données. – aaron

Répondre

0

premier regard si vous avez une erreur après avoir exécuté la requête

echo mysql_errno() . ": " . mysql_error() . "\n"; 

également sur les résultats, vous pouvez avoir plus d'un résultat si vous devez faire boucle foreach pour TJB tous comme:

while ($row = mysql_fetch_array($sql)) { 

} 

une autre note à l'aide mysql_* empêchent fonctions parce que:

Cette extension est obsolète depuis PHP 5.5.0, et sera supprimée dans l'avenir. Au lieu de cela, l'extension MySQLi ou PDO_MySQL doit être utilisée.

0

Au début du script que vous avez déclaré $itemname=''; comme une chaîne puis plus tard utilisé comme un tableau $itemname[]= $keyarray['item_name'.$i];};. Utilisez $itemname=array(); pour le supprimer en tant que tableau.

Et utiliser soit PDO ou mysqli, comme mysql est dépréciée et est pas pris en charge dans les versions ultérieures

Questions connexes