Mysql_result(): supplied argument is not a valid MySQL result resource [Résolu]

Signaler
Messages postés
408
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
18 décembre 2012
-
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
-
Bonjour,

Je débute et j'en viens à mes premiers problèmes.

J'ai une classe mysql, j’exécute une requete : $result = Mysql::MyQuery("SELECT COUNT(*) FROM nd_membres WHERE pseudo='$pseudo';");

Si je fais :

print_r($result); J'obtiens :

Array ( [0] => Array ( [COUNT(*)] => 5 ) )

Tout marche le même pseudo existe 5 fois.

Maintenant j'essaye de traiter le résultat pour dire vérifier si le pseudo existe déja avec :

if(mysql_result($result,0)!=0)
{
return 1;
}

Et la j'obtiens un Warning :

Warning: mysql_result(): supplied argument is not a valid MySQL result resource

Je ne comprend pas vraiment. Comment traiter l'ARRAY ? Pourquoi cela ne marche t'il pas? Je ne sais pas à quoi ressembler une réponse SQL, ne s'agit t'il pas d'un array?

Merci pour votre aide par avance.

2 réponses

Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11
echo $result[0][0]; devrait fonctionner. L'utilité de cette classe ? Aucune si elle ne gère rien d'autre que MySQL (autant utiliser PDO, si on ne veut pas toucher à du "bas niveau" !)

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Messages postés
408
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
18 décembre 2012

Je viens de voir que la classe MYsql que j'utilise fais un traitement sur la REQUETE SELECT...

//si SELECT récupération du résultat dans un tableau associatif
// ------------------------------------------------------------
if ( $Type_requete == "SELECT" )
{
$results = array() ;
$this->MyNbLigne = @mysql_num_rows($result) ;

//construction du tableau associatif
// ---------------------------------
while ($ligne = @mysql_fetch_assoc($result)) array_push($results,$ligne) ;

//libération de la mémoire
// -----------------------
@mysql_free_result($result) ;

return $results ;
}

Quel est l'intérêt ? Si quelqu'un pourrait m'expliquer ca serait gentil. Pourquoi ne pas faire un simple return de la requete mysql et traiter ca traditionnellement?