[PHP] Aidez-moi à comprendre mon erreur, SVP!
Résolu/Fermé
roukmouth
-
4 avril 2005 à 18:46
roukmouth Messages postés 26 Date d'inscription mercredi 13 décembre 2000 Statut Membre Dernière intervention 10 mars 2010 - 5 avril 2005 à 18:11
roukmouth Messages postés 26 Date d'inscription mercredi 13 décembre 2000 Statut Membre Dernière intervention 10 mars 2010 - 5 avril 2005 à 18:11
A voir également:
- [PHP] Aidez-moi à comprendre mon erreur, SVP!
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 38 free ✓ - Forum Mobile
- Erreur vidéo freebox ✓ - Forum TV & Vidéo
6 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
4 avril 2005 à 23:12
4 avril 2005 à 23:12
Salut,
Ca me parait bien vu dans le sens où mysql_query() retourne FALSE en cas d'erreur.
C'est ce qui est dis ici:
http://fr.php.net/manual/fr/function.mysql-query.php
Mais une requête qui ne comporte pas d'erreur mais qui ne retourne aucun resultat, est ce considéré comme une erreur?
Je viens de tester pour voir.
Alors une requête SELECT dans un mysql_query() ne retournera pas FALSE si elle ne retourne aucun resultat.
En revanche si la syntaxe de ta requête est fausse, alors mysql_query() retournera False. Exemple:
Ca rejoins ce que dis ric.
Pour tester si une requête SELECT ne te retourne rien, utilise mysql_num_rows() (et voit si c'est égal à 0).
Ensuite ton 'Resource id #5' c'est parce que tu prends la valeur retournée par mysql_query() sans la transfomer en une valeur exploitable en php, il ya plein de fonctions pour ça:
mysql_fetch_array,mysql_result etc....
Ca me parait bien vu dans le sens où mysql_query() retourne FALSE en cas d'erreur.
C'est ce qui est dis ici:
http://fr.php.net/manual/fr/function.mysql-query.php
Mais une requête qui ne comporte pas d'erreur mais qui ne retourne aucun resultat, est ce considéré comme une erreur?
Je viens de tester pour voir.
Alors une requête SELECT dans un mysql_query() ne retournera pas FALSE si elle ne retourne aucun resultat.
En revanche si la syntaxe de ta requête est fausse, alors mysql_query() retournera False. Exemple:
mysql_query("select * fom machin");retournera FALSE à cause de "fom".
Ca rejoins ce que dis ric.
Pour tester si une requête SELECT ne te retourne rien, utilise mysql_num_rows() (et voit si c'est égal à 0).
Ensuite ton 'Resource id #5' c'est parce que tu prends la valeur retournée par mysql_query() sans la transfomer en une valeur exploitable en php, il ya plein de fonctions pour ça:
mysql_fetch_array,mysql_result etc....
Désolé mais je n'ai pas trouvé comment rééditer mon message alors je continue sur un autre post puisque j'ai oublié de vous dire quel erreur résulte de l'enregistrement.
Quel que soit les renseignements que je rentre dans le formulaire, la réponse reste toujours la même :
"Cette adresse électronique possède déjà un compte avec le pseudo 'Resource id #5' "
Sachant bien sûr que je rentre des adresses email au hasard (qui ne figurent donc pas dans ma base de données) et des noms aléatoires.
Alors je ne comprends rien, aidez-moi SVP !!! Merci d'avance...
Quel que soit les renseignements que je rentre dans le formulaire, la réponse reste toujours la même :
"Cette adresse électronique possède déjà un compte avec le pseudo 'Resource id #5' "
Sachant bien sûr que je rentre des adresses email au hasard (qui ne figurent donc pas dans ma base de données) et des noms aléatoires.
Alors je ne comprends rien, aidez-moi SVP !!! Merci d'avance...
Bonsoir
Je dirais que $result_verif et $result_verif2 sont toujours vrais tant que les requêtes ont pu être faites donc le dernier else est exécuté.
$result_verif = mysql_query($verif); $result_verif2 = mysql_query($verif2); if ((!$result_verif) && (!$result_verif2))
Je dirais que $result_verif et $result_verif2 sont toujours vrais tant que les requêtes ont pu être faites donc le dernier else est exécuté.
Ce que je désirais obtenir avec ces tests c'est : S'il ne trouve pas de réponse à ces requêtes, alors faire si ou ça... Je débute en PHP/MySQL, alors si vous avez une solution, je suis preneur. Merci pour vos réponses, en espérant que vous continuerez à m'aider. Et pour 'Resource id #5', il est vrai que j'ai oublié de le transformer, merci, je suis sûr que je n'y aurais pas pensé tout seul. ^_^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Il a une fonction mysql_nums_rows ( http://www.zend.com/manual/function.mysql-num-rows.php ).
Ensuite tu a juste qu'à faire
Ensuite tu a juste qu'à faire
if(mysql_numrows($result_verif) == 0)
roukmouth
Messages postés
26
Date d'inscription
mercredi 13 décembre 2000
Statut
Membre
Dernière intervention
10 mars 2010
2
5 avril 2005 à 18:11
5 avril 2005 à 18:11
Merci à tous, c'est bon j'ai réussi (enfin nous avons réussi). Alorzs merci à tous... ^^
Pour ceux qui voudraient en faire autant :
Pour ceux qui voudraient en faire autant :
<?php include("perso/abcd.inc"); $connexion = mysql_connect($host, $user, $pass) or die ("Connexion au serveur impossible"); $db = mysql_select_db($base, $connexion) or die ("La base de données ne peut être sélectionnée"); $pseudo=trim($pseudo); $pseudo=strip_tags($pseudo); $password=trim($password); $password=strip_tags($password); $email=trim($email); $email=strip_tags($email); $query = "INSERT INTO user (login, pass, email) VALUES ('$pseudo','$password','$email')"; $verif = "SELECT email FROM user WHERE email = '$email'"; $verif2 = "SELECT login FROM user WHERE login = '$pseudo'"; $verif3 = "SELECT login FROM user WHERE email = '$email'"; $result_verif = mysql_query($verif); $result_verif2 = mysql_query($verif2); if ((mysql_num_rows($result_verif)==0) && (mysql_num_rows($result_verif2)==0)) { $result = mysql_query($query); if (!$result) { echo "Exécution de la requête<br>$query<br><b>impossible"; echo mysql_errno()." : ".mysql_error()."<br>";//pour mise au point } else echo "Bienvenue sur mon site $pseudo<br>"; } else { if (mysql_num_rows($result_verif)==0) { echo "Le pseudo $pseudo est déjà utilisé<br>"; } else { $result_verif3 = mysql_query($verif3); $ligne = mysql_fetch_array($result_verif3); extract($ligne); echo "Cette adresse électronique possède déjà un compte avec le pseudo $login"; } } ?>