PHP - MySQL

Répondre
yearling
le 08/03/2004 à 10:24
yearling
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
LA GLOBULE
le 08/03/2004 à 12:05
LA GLOBULE
Pourquoi tu ne comptes pas le nombre d'enregistrements retournés avec mysql_num_rows ?
yearling
le 08/03/2004 à 12:18
yearling
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
LA GLOBULE
le 08/03/2004 à 12:26
LA GLOBULE
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
.... ;
yearling
le 08/03/2004 à 13:29
yearling
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
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours