Problème requête mysql (SELECT COUNT) [Résolu/Fermé]

Signaler
Messages postés
54
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
18 juillet 2016
-
 Utilisateur anonyme -
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 !
A voir également:

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
Messages postés
54
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
18 juillet 2016
12
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 !
Utilisateur anonyme
De rien :D

C'est la fatigue il est tard ;)