PHP - MySQL
Bonjour à tous,
je voudrais juste un petit renseignement concernant l'exécution d'une requête SQL.
Est-ce possible de tester le résultat d'une requête (SELECT) pour savoir si aucun enregistement ne correspond aux critères de recherche.
En fait, je recherche les dossier payés pour une certaine date. Si ma requête ne retourne aucun résultat, je ne dois pas faire l'instruction suivante qui est de calculer le nombre d'enregistrements que ma requête m'a retournés.
Existe-t-il des codes retour pour toutes requêtes exécutées ? Ex : 405 : fin de table ...
Merci d'avance pour votre collaboration
Thierry
Pourquoi tu ne comptes pas le nombre d'enregistrements retournés avec mysql_num_rows ?
Bonjour,
tout d'abord, merci pour ta réponse à mon message ...
En effet, j'utilise l'instruction mysql_num_rows mais j'obtiens un message d'erreur ...
En fait, voici le code source de ma page web :
$strSQLBirthdate = "SELECT * FROM demande INNER JOIN Payment";
$strSQLBirthdate .= "ON demande.Identificateur = Payment.PaymentIdentificateur ";
$strSQLBirthdate .= "WHERE ( Mid(ApplicantBirthdate, 1, 5) = '".$strDateToCompare."' ) ";
mysql_select_db("Customer");
$resBirthdate = mysql_query($strSQLBirthdate);
$intNumRowsBirthdate = mysql_num_rows($resBirthdate);
Et voici le message d'erreur que j'obtiens :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
En fait, avant d'exécuter l'instruction mysql_num_rows, j'aimerais bien voir si mon curseur est vide ...
EX : if ($resBirthdate == 406)
$strMessage = "Pas enregistrements ...";
else
$intNumRowsBirthdate = mysql_num_rows($resBirthdate);
Merci d'avance de ton aide ...
Thierry
Tu as une erreur sur ton mysql_num_rows parce que ta requete s'execute mal : place un or die mysql_error sur ton mysql_query pour voir l'erreur.
Ensuite, pourquoi tu ne veux pas faire :
$intNumRowsBirthdate = mysql_num_rows($resBirthdate);
if ($intNumRowsBirthdate == 0)
$strMessage = "Pas enregistrements ...";
else
.... ;
Salut,
merci beaucoup, en effet, il y avait une petite faute dans la syntaxe de ma clause SQL.
Une erreur de débutant impardonnable ...
Je ne sais pas pourquoi je n'ai pas placé un "or die" après l'exécution de ma requête.
En fait, il me manquait un espace entre le nom de ma deuxième table et le mot clé "on". Donc, ça donnait : SELECT * FROM demande INNER JOIN PaymentON demande.Identificateur = ...
En fait, je n'utilisais pas mysql_num_rows parce que je pensais que ça générait une erreur quand il ne trouvait pas d'enregistrement ...
Merci beaucoup pour ton aide ...
Bonne journée
Thierry
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: