Php : bizarre... pff :(

Fermé
Anthony - 23 déc. 2008 à 03:10
 Anthony - 23 déc. 2008 à 12:20
Bonsoir à tous !

voilà j'ai un petit problème tout con que je n'arrive pas à résoudre.

voici un bout du script :

$req1 = "SELECT * FROM utilisateur WHERE loginUtil='$login'";
$ressource1 = mysql_query($req1);

if ($ressource1) // si le login n'existe pas
{
echo'<p class="alert">Le login que vous avez choisis existe déjà.</p>';
}
else
{
echo ' autre instruction... ';
}


voilà, donc j'explique : il y a un formulaire où on met son pseudo ( $login ) , et moi je veux vérifié si ce login n'existe pas dans la table 'utilisateur'.
Donc je fais une requête qui me sort un résultat si le login existe, et j'envoie la requete avec $ressource1.

D'après mes cours (je cite) :

La fonction $ressource1 = mysql_query($req1); renvoie un identifiant ressource qui permet d'exploiter le résultat de la requête lorsque la requête a fonctionné, sinon aucune valeur n'est renvoyée. dans ce cas $ressource1 n'existe pas car elle n'a pas été initialisée.


Bon en gros, quand je tape 'Anthony' dans login, (c'est-à-dire un truc qui existe !!) , ma requete n'est pas vide, donc elle existe. du coup dans mon if je met : if (isset($ressource1))

et Whoua magique, ça m'écrit bien "Le login que vous avez choisis existe déjà." ^^

Mais problème : quand je met un login qui n'existe pas, bin ça me met la même chose... ( donc $ressource1 ne serait pas inexistant ?), si je met un if (!empty($ressource1)) ca me fait pareil.

et si je met if (!isset($ressource1)) ou if (empty($ressource1)), là ca passe bien dans le else... mais bon ca passe aussi quand le login existe.

Donc voilà mon problème !! :)

J'espère vraiment que vous allez pouvoir m'aider ^^

Merci d'avance ++
A voir également:

3 réponses

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
23 déc. 2008 à 03:16
Voici un petit exemple de code en PHP pour voir si la requête MySQL a retourné au minimum 1 enregistrement :

<?php
$sql_utilisateur = mysql_query("SELECT * FROM utilisateurs WHERE login='$login'")or die(mysql_error());

// On teste si la requête à trouver au minimum un enregistrement
if(mysql_num_rows($sql_utilisateur) >= 1)
{
    // Cool elle a trouvé un ou plusieurs enregistrement pour le(s)quel(s) login='$login'
    echo "Le login que vous avez entrer existe dans notre base de données.";
    // Suite de l'identification
}
else
{
    echo "Navré mais ce login n'existe pas dans notre base de données.";
}
?>
0
hmm, ca fonctionne !!!

en l'adoptant a mon script, ton code PHP me renvoie "Navré mais ce login n'existe pas dans notre base de données." pour une nouvelle entré, et "Le login que vous avez entrer existe dans notre base de données." lorsque ca existe déjà !


Bin merci beaucoup !!!!!! :)

je vais mettre en place ton truc ^^, et sinon mon truc a moi, pourquoi ça marchais pas ? lol


encore merci, bonne soirée ++
0
Bonjour

Pourquoi ça ne marchait pas ? Pace que ton cours est faux (si tu as vraiment répété ce qu'il dit dans ton premier message)

mysql_query te rend TOUJOURS quelque chose, donc $resource1 sera TOUJOURS défini :
. un booleen false si la requête est un correcte
. une ressource si la requête est correcte

La ressource peut d'ailleurs être vide ou non selon que le login ait été trouvé ou non.

https://www.php.net/manual/fr/function.mysql-query.php
0
Ah ouais d'accord !!
Merci j'ai compris :)


bonne journée
0