Probleme de COUNT

Eléphant du PHP | 84 Messages

10 mai 2005, 21:39

Bonsoir tout le monde (je remercie les perssone qui m'on aider pour l'envoi de fichier par formulaire) le probleme est regler, mais voila un autre script qui ne fonctione pas :shock: je suis modit LOL
Il sagit du script qui verifie si le pseudo entrer existe deja (nous somme dans un formulaire d'inscription)
Ma methode :
Compter les lignes dont le champ a pour valeur $_POST['pseudo']
si il est plus petit que 1 on enregistre sinon on renvoi le formulaire.
Le probleme c'est que $number est null vous comprendrez mieu en regardant se script:
Mysql_connect('***','***');
	Mysql_select_db('aafgtn_db');
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM membre WHERE pseudo = '.$_POST['pseudo']);
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
echo $totalDesMessages.'ici';
Mysql_close();
	if($totalDesMessages < 1)
{...}else{...}
Merci de trouvé l'erreur :)
Amicalemen PitiLOUP68
~~Jojo~~

Mammouth du PHP | 19672 Messages

10 mai 2005, 21:55

Salut jojo,
tu peux simplifier:
<?php
mysql_connect('***','***');
mysql_select_db('aafgtn_db');
$retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM membre WHERE pseudo = '".$_POST['pseudo']."'");
$donnees = mysql_fetch_array($retour);
mysql_close();
if($donnees) // On vérifie que mysql_fetch_arrray n'a pas retourné FALSE (pas de message)
{
    $totalDesMessages = $donnees['nb_messages'];
    echo $totalDesMessages.'ici';
    /*...*/
}
?>
Si le nombre de ligne est inférieur à 1, mysql_fetch_array() va retourner FALSE, dont on teste s'il y a des messages et on exécute les commandes, sinon, on ne fait rien ou alors tu rajoutes un else après et tu affiches un message annonçant par exemple qu'il n'y a pas de messages.

Sinon, l'erreur était dans la concaténation de chaine dans la requête : vérifie toujours bien comment tu concatènes du SQL et du PHP :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: