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
18
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
37
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