Php:Resultat requete SQL [Résolu]

Signaler
Messages postés
5
Date d'inscription
dimanche 30 décembre 2007
Statut
Membre
Dernière intervention
10 juin 2008
-
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
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

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
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...
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
35
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 !!!
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
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.
Messages postés
5
Date d'inscription
dimanche 30 décembre 2007
Statut
Membre
Dernière intervention
10 juin 2008

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
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Oui, et ? Comme je te l'ai dit, ton code devrait marcher. Donc explique ce qui ne marche pas.