Problème requête mysql (SELECT COUNT)

Résolu/Fermé
nab13 Messages postés 54 Date d'inscription dimanche 23 mars 2008 Statut Membre Dernière intervention 18 juillet 2016 - Modifié par nab13 le 1/04/2015 à 23:48
 Utilisateur anonyme - 2 avril 2015 à 00:46
Bonjour a tous,

J'ai un petit soucis avec une requête :

Dans ma table stock, j ai entre autres un champ ref et un champ descr. Une même ref peut avoir plusieurs descr différentes.

J'arrive à afficher la liste des couples ref/descr uniques grâce à cette requête :

$req="SELECT DiSTINCT ref, descr FROM stock";
$sql = mysql_query($req);
while ($stock = mysql_fetch_array($sql))
{
echo '<tr>'; 
echo '<td>'.$stock['ref'].'</td>';
echo '<td>'.$stock['descr'].'</td>';
echo '<td></td>';
echo '</tr>';
}


Je voudrais également afficher les quantités pour chaque couple. Mon while devient donc :


while ($stock = mysql_fetch_array($sql))
{
 
$retour = mysql_query("SELECT COUNT(ref) AS result FROM stock WHERE descr = '".$stock['descr']."'");
$donnees = mysql_fetch_array($retour);
$qte= $donnees['result'];
 
echo '<tr>'; 
echo '<td>'.$stock['ref'].'</td>';
echo '<td>'.$stock['descr'].'</td>';
echo '<td>'.$qte.'</td>';
echo '</tr>';

}


J'ai essayé plusieurs variantes avec le même résultat :

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in .......... on line 17

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in .......... on line 17

La ligne 17 chez moi étant la ligne 5 du deuxième code ici.

Quelqu'un peut il m'expliquer ou cela cloche ? Peut être ma méthode est mauvaise et il existe une formule toute faite ..

Merci d'avance à toutes les âmes charitables pour leur aide !

2 réponses

Bonsoir,

Pouvez-vous rajouter ça et me faire un retour :


$req =" SELECT COUNT(ref) AS result FROM stock WHERE descr = '".$stock['descr']."'"";

.....
....

if(!$retour) {
 $message  = 'Requête invalide : ' . mysql_error() . "\n";
 $message .= 'Requête complète : ' . $req;
 die($message);
}



Amicalement
0
nab13 Messages postés 54 Date d'inscription dimanche 23 mars 2008 Statut Membre Dernière intervention 18 juillet 2016 12
2 avril 2015 à 00:26
Alors voici le message :

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in ---------------------------------- on line 17
Requête invalide : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 To 7200 RPM 64 Mo Serial ATA 6 Gb/s (bulk)'' at line 1 Requête complète :

La requête donnerait :

"SELECT COUNT(*) AS result FROM stock WHERE descr = 'Seagate Barracuda 7200.14 SATA 6Gb/s 1 To - Disque dur 3.5' 1 To 7200 RPM 64 Mo Serial ATA 6 Gb/s (bulk)'"

Du coup voyant ceci, j'ai enlevé le ' de 3.5' et ça marche !

Je comprends pas pourquoi je n'ai pas pensé avant à faire ce que tu m'as dit de faire ... le manque d'expérience, la fatigue ou les deux.

Du coup je vais modifier le script d'insertion dans la table.

Merci en tout cas pour ton aide !
0
Utilisateur anonyme
2 avril 2015 à 00:46
De rien :D

C'est la fatigue il est tard ;)
0