Fonction de consultation de base, pas de retour

Résolu
kazaam Messages postés 14 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 7 septembre 2010 - 18 sept. 2006 à 19:33
kazaam Messages postés 14 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 7 septembre 2010 - 18 sept. 2006 à 22:40
Bonjour

j'ai un soucis avec ma fonction, celle ci ne retourne rien, le parametre arrive bien (si je le met en return il passe) et j'obtient un resultat si je met un valeur "texte" a la place de la variable

le code

Function donnee($art) {
 
 $requete= "SELECT * FROM produits WHERE 1 AND ref LIKE '$art'";
 $result=mysql_query($requete);
 list($code,$cat,$nom,$prix,$poids,$marque,$ref,$image)=mysql_fetch_row($result);
    $num_rows=mysql_num_rows($result);
    return array ($nom,$prix);
  
 }

$ref = $_SESSION['achats'][$i]['ref'];
$data=donnee($ref);

$ref contient bien qqch, mais $num_rows reste toujours a 0 sauf si je remplace $art par du texte (ou $ref dans l'appel)

Une idee de la solution?

merci

4 réponses

kazaam Messages postés 14 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 7 septembre 2010
18 sept. 2006 à 22:40
rien du tout meme en mettant
return array ($nom,$prix, $num_rows);

en fait j'ai bien un ressource mais ca s'arrete la

donc en fouillant un peu j'ai trouve ce code sur  php.net

 $query = sprintf("SELECT * FROM produits WHERE ref='%s'",
   mysql_real_escape_string($art));
 
   $result = mysql_query($query);
   if (!$result) {
   $message  = 'Requête invalide : ' . mysql_error() . "\n";
   $message .= 'Requête complète : ' . $query;
   die($message);
}
 
   while ($row = mysql_fetch_assoc($result)) {
   $nom=$row['nom'];
   $prix=$row['prix'];
  
}
   return array($nom,$prix);

enfin bon ca marche mais je sais touours pas pk mon code ne fonctionne pas ici alors que tout le reste du site l'utilise sans probleme

merci R@f

Kazaam
3
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
18 sept. 2006 à 20:18
Salut!
Tu devrais mettre le $num_rows=mysql_num_rows($result);
Avant le mysql_fatch_row! :)

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
kazaam Messages postés 14 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 7 septembre 2010
18 sept. 2006 à 22:22
hello
merci du conseil, j'avais mis comme ca au depart
j'ai reteste mais ca change rien toujours aucun retour
Kazaam
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
18 sept. 2006 à 22:28
Comment ça aucun retour? Si tu veux un retour, il faut le faire: :)
return array ($nom,$prix, $num_rows);

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
Rejoignez-nous