IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Probleme avec WHILE


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 14
    Points : 17
    Points
    17
    Par défaut Probleme avec WHILE
    Bonjour a tous

    désolé si je poste au mauvais endroit

    j'ai besoin de votre aide, je suis super débutant et je me lance dans le PHP

    je voudrai comparer une variable ($login) avec une donnée de ma bdd ($data['Login'])

    mais je coince avec la boucle WHILE

    un dessin vaut mieux qu'un long discours
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    // on se connecte à MySQL
    	$db = mysql_connect('localhost', 'root', '');
     
    	// on sélectionne la base
    	mysql_select_db('test',$db);
     
    	// on crée la requête SQL
    	$sql = 'SELECT Login FROM tb_essai';
     
    	// on envoie la requête
    	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    	$result= mysql_query($req);
     
    	// on fait une boucle qui va faire un tour pour chaque enregistrement
    	while($data = mysql_fetch_array($req))
    		{
    			if ($data['Login'] == $_POST['login'])
    			{
    				echo ("ce login existe ");
    				exit;
    			}	
    			else
    			{
     
    				echo ' ce login n existe pas<br><br>';
    				echo (print("<a href='../Nouveau/tableau.php'>Formulaire d'inscription</a><br>"));
    				exit;
    			}
    		}
     
    	// on ferme la connexion à mysql
    	mysql_close($db);

    si mon login est idem que celui dans la base de donnée la boucle devrait s'arreter oui bien ...

    mille merci pour votre aide

  2. #2
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Dans un premier temps tu devrais passer de mysql à mysqli.
    Ensuite pour les echo la syntaxe est : echo "ton message";
    Et au lieu de exit à tu essayé break;?
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as pas besoin de parcourir manuellement la table : utilise simplement un WHERE dans ta requête.

    Par ailleurs, l'extension mysql est obsolète, apprend directement PDO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $db = new pdo('mysql:host=localhost;dbname=test', 'root', '');
     
    	$sql = 'SELECT COUNT(*)  as nbre FROM tb_essai WHERE Login = ?';
     
    	$sth = $db->prepare($sql);
    	$sth->execute(array($_POST['login']));
     
    	$data = $sth->fetch(PDO::FETCH_ASSOC));
     
    	if ($data['nbre'] != 0) {
                    echo ("ce login existe ");
            }	
    	else	{
                    echo ' ce login n existe pas<br><br>';
    		echo '<a href="../Nouveau/tableau.php">Formulaire d\'inscription</a><br>';
    	}
    Tu n'as pas non plus besoin de mettre des exit() dans tes conditions.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Deux remarques en complément de celles déjà postées :
    1. La boucle while ne parcourt que le premier élément car il y a un exit à la fois dans le if et le else.
    2. Changer le mot de passe de root serait une bonne chose.
    Christophe

    Pensez à mettre quand c'est le cas.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 14
    Points : 17
    Points
    17
    Par défaut
    Merci Kreepz pour votre réponse, les corrections ont été faites

    Merci SABOTAGE votre code fonctionne (il y avait une petite erreur de syntaxe vite corrigée à la ligne 8)

    Merci Christophe P. cette base de données a été créée juste pour me familiariser avec le PHP et la MySQL


    Encore merci a tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme avec while read
    Par Erlen dans le forum Shell et commandes GNU
    Réponses: 19
    Dernier message: 04/01/2011, 22h52
  2. Probleme avec while
    Par shomke dans le forum Général Python
    Réponses: 3
    Dernier message: 01/04/2009, 09h34
  3. probleme avec while Perl
    Par imorum dans le forum Langage
    Réponses: 2
    Dernier message: 21/01/2007, 19h03
  4. Problème avec while et paramètres
    Par mittim dans le forum Linux
    Réponses: 4
    Dernier message: 08/08/2006, 10h47
  5. Probleme avec WHILE
    Par beb30 dans le forum C
    Réponses: 14
    Dernier message: 05/04/2006, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo