Php:Resultat requete SQL

Résolu
cs_did61 Messages postés 5 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 10 juin 2008 - 27 mars 2008 à 20:07
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 28 mars 2008 à 00:24
Bonjour,

Comment teste t-on le nombre que
renvoie une requete SQL ? dans quelle variable est le nombre de joueur
$sql ou $nombre ?

Requete :

$sql = 'SELECT count(*) FROM joueur WHERE categorie="'.mysql_escape_string($_POST['categorie']).'"';
$req = mysql_query($sql) or die('Erreur SQL !');
$nombre = mysql_fetch_array($req);

Dans un premier temps je pensai a un truc comme ca :

if ($nombre[0] > 10)
{
$nbJeune = ' nombre de jeune :'.$????. ;
}

            Merci

5 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
28 mars 2008 à 00:24
Salut,

3 remarques :

- depuis PHP 4.3.0 mysql_real_escape_string() remplace avantageusement mysql_escape_string() (néanmoins, je suis sensible à l'attention du développeur (pardon... de la développeuse) de protéger sa requête)
- pour ne récupérer qu'un seul résultat, autant utiliser mysql_result() qui est quand même plus adapté dans le cas présent (j'imagine qu'elle est plus performante du fait que la fonction ne gère pas de pointeur... simple supposition imaginaire de mon esprit fantaisiste).
- SELECT COUNT(*) = > c'est assez beurk. Je préfère S ELECT COUNT(champ) où "champ" est un index de la table (il se peut que MySQL s'appuie sur un index, une clé primaire s'il y a, mais comme je n'en suis pas sûr et que je ne sais pas comment il se comporte s'il y a plusieurs index...)

Sinon, je vais en remettre une couche : où est le problème ?

<hr size ="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
27 mars 2008 à 20:46
Salut,

quel est ton problème, je n'ai pas bien compris ...
ce serais mieux si tu mettait un while !!! aller un petit exemple :

$sql = 'SELECT count(*) FROM joueur WHERE categorie="'.mysql_escape_string($_POST['categorie']).'"';
   $req = mysql_query($sql) or die(mysql_error());

while($nombre = mysql_fetch_array($req)) {
   if ($nombre[0] > 10)
        {  
          $nbJeune = ' nombre de jeune :'.$????. ;
        }
}
Si t'a besoin d'aide, MP !!!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 mars 2008 à 20:56
Hello,

@nicomilville => un while ne sert à rien puisqu'il ne va chercher qu'un seul résultat.

@did61 => qu'est-ce qui ne marche pas ? Ton code devrait fonctionner.
0
cs_did61 Messages postés 5 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 10 juin 2008
27 mars 2008 à 21:28
J'ai besoin de savoir combien j'ai de ligne (d'ou le count(*)) pour le recuperer et ensuite le metre dans une condition. Je croi que mysql_fetch_array permet d'avoir ce nombre mais je n'en suis pas sur . j'aurai besoin de testé si il y a par exemple plus de 10 joueur dans une categorie pour executé un bout de code
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 mars 2008 à 21:48
Oui, et ? Comme je te l'ai dit, ton code devrait marcher. Donc explique ce qui ne marche pas.
0
Rejoignez-nous