requete qui retourne rien

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requete qui retourne rien

Re: requete qui retourne rien

par xzena » 28 déc. 2011, 17:07

Bonsoir,
Ne suffit il pas uniquement de déplacer le 'AS nbnvis1', sur la requête initiale postée par xzena?

SELECT count(code) FROM table1 AS nbnvis1 WHERE code NOT IN (SELECT code FROM table2)");
Par
SELECT count(code) AS nbnvis1 FROM table1 WHERE code NOT IN (SELECT code FROM table2)");

Ciao
Jérôme
Justement AS..Merci.c'est résolu..
@Ryle Merci beaucoup pour l'explication ;)

Re: requete qui retourne rien

par liens_geeks » 27 déc. 2011, 20:41

Bonsoir,
Ne suffit il pas uniquement de déplacer le 'AS nbnvis1', sur la requête initiale postée par xzena?

SELECT count(code) FROM table1 AS nbnvis1 WHERE code NOT IN (SELECT code FROM table2)");
Par
SELECT count(code) AS nbnvis1 FROM table1 WHERE code NOT IN (SELECT code FROM table2)");

Ciao
Jérôme

Re: requete qui retourne rien

par Ryle » 24 déc. 2011, 15:27

La fonction mysql_fetch_array() te retourne un tableau qui est à la fois associatif et indexé, c'est à dire que ta variable $rowww va être un tableau de la forme :
- $rowww["nom_de_la_colonne"] = valeur_en_base
- $rowww[position_dans_la_requête] = valeur_en_base

Pour récupérer le résultat de ton count(), il te faut donc soit :
- donner un alias comme le fait xTG : " COUNT(code) AS nb " puisqu'il n'y a pas de nom à la colonne count, on lui en donne un (ex : "nb"), et utiliser ensuite $rowww['nb'] pour récupérer la valeur
- utiliser la position de ce champ dans la requête (c'est le premier champ retourné par la requête, il a donc l'index 0) et utiliser ensuite $rowww[0] pour récupérer la valeur

La première solution reste préférable pour des questions de lisibilité et de maintenance (c'est plus facile de savoir ce que contient ta variable quand l'index s'appelle "nombreDeCodes" que quand il s'appelle "0". Et le jour où tu veux récupérer une deuxième donnée avec ta requête et que tu places celle-ci avant le count, tu n'as pas renuméroter tous tes index pour dire que les "0" sont désormais des "1"

A noter également que la fonction mysql_fetch_assoc() ne retourne que le premier cas (par nom de colonne) et que mysql_fetch_row() ne concerne elle que le second (par position). Ces fonctions sont un poil plus optimisée, puisqu'elles ne gèrent pas l'information qui ne te servira pas :)

Re: requete qui retourne rien

par xzena » 24 déc. 2011, 14:47

j'ai pas compris quoi faire alors

Re: requete qui retourne rien

par xTG » 24 déc. 2011, 13:47

Tu tentes d'afficher un index qui n'existe pas, ce sont les noms des colonnes récupérées qu'il faut afficher.
$reqNVIS = mysql_query ("SELECT count(code) AS nb FROM table1 AS nbnvis1 WHERE code NOT IN (SELECT code FROM table2)");
while ($rowww= mysql_fetch_array($reqNVIS)){
$nbnvt1 = $rowww['nb'];
echo $nbnvt1 ;
}

requete qui retourne rien

par xzena » 24 déc. 2011, 13:37

salut,
je sais pas pourquoi cette requête me retourne rien alors que sur phpmyadmin il donne la résultat exacte!
$reqNVIS = mysql_query ("SELECT count(code) FROM table1 AS nbnvis1 WHERE code NOT IN (SELECT code FROM table2)");
while ($rowww= mysql_fetch_array($reqNVIS)){
$nbnvt1 = $rowww['nbnvis1'];
echo $nbnvt1 ;
}
idée svp ?