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 de boucle if avec commande sql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Probleme de boucle if avec commande sql
    Bonjour,
    Ca fait deja un moment que je me prends la tete avec ce code.
    J'ai un formulaire dans lequel je saisie mon nom de famille, mon prenom, mon login, mon mot de passe, et le titre.

    Je stokes dans une table "information" le login, le mot de passe et le titre pour mettre de verifier si les logins et titre n'existe pas deja.
    Mes boucles "if" sont sencé faire ca seul probleme.

    Quand je rentre un login et titre qui existe pas ça fonction tres bien quand je rentre le login et le titre qui existe deja il m'affiche bien mon "echo". Mais si je rentre un login qui existe deja dans la base avec titre different qui continu l'installation sans l'ajouter dans la base de donnée et reciproquement.

    Je pense que mon probleme viens de ma comparaison entre les données et celle de la base de données.
    J'ai l'impression qu'il comparer ligne par ligne dans ma base de donnée et ma login par login.
    Pouvez vous m'aider. Merci lila
    Voici mon code:

    $mysql_connexion=mysql_connect('localhost','root','');
    $mysql_connexion=mysql_select_db('stockage');

    $query="SELECT login,name_blog FROM information WHERE login ='".$_POST['p_login']."' and name_blog ='".$_POST['p_blog_name']."';";
    $resultat=mysql_query($query);
    $result=mysql_fetch_array($resultat);

    if ($result != NULL)
    {
    if (($result['login']==($_POST['p_login']))&& ($result['name_blog']==($_POST['p_blog_name'])))
    {
    echo("login et nom de blog probleme");
    }
    if (($result['login']==($_POST['p_login']))&& ($result['name_blog']!=($_POST['p_blog_name'])))
    {
    echo("login probleme");
    }
    if(($result['name_blog']==($_POST['p_blog_name']))&&($result['login']!=($_POST['p_login'])))
    {
    echo("le nom de blog probleme");
    }
    }
    else
    {
    $requete ="INSERT INTO information SET login='".$_POST['p_login']."', password='".$_POST['p_pwd']."',name_blog='".$_POST['p_blog_name']."';";
    //exe();
    $resultat=mysql_query($requete);
    }
    Lila13

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Les balise deja pour encadrer ton code..
    Stay in Bed .. Save Energy

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Concernant ton code il y a un pb effectivement.... tu selectionne dans ta requete sql seule ment les lignes qui on est le nom de login et le nom de blog pareil que ceux rentré....dans ton result il n'y aura donc jamais le cas où seul le login ou le name blog sont identioques remplace dans ta requete sql le and par un or ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    $query="SELECT login,name_blog FROM information WHERE login ='".$_POST['p_login']."' or name_blog ='".$_POST['p_blog_name']."';";
    Stay in Bed .. Save Energy

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Je viens de changer mon "and" par un "or" mais sa lui a pas changer sa vie.
    Mes balise php y sont mais j'ai oublié de les mettres dans la copie que je vous ai envouyer.
    Lila13

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    fait un echo query avant de l'envoyer a ta base pour voir quelle est la requete envoyer.

    Puis pas besoin de mettre toute ces parentheses dans ton if ca marche tré bien comme ça:
    if ($result['login']==$_POST['p_login'] && $result['name_blog']==$_POST['p_blog_name'])
    Stay in Bed .. Save Energy

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    C'est bon j'ai trouver mon probleme en effet il fallait modifier le "and" par un "or" merci beaucoup mais aussi car j'appellai dans mes boucle login et nom_blog mais comme c'est un tableau il trouvait pas login et nom_blog donc voila les modification de mon code en rouge le reste est inchangé.
    Merci beaucoup pour votre aide.


    $query="SELECT login,name_blog FROM information WHERE login ='".$_POST['p_login']."' or name_blog ='".$_POST['p_blog_name']."';";
    $resultat=mysql_query($query);
    $result=mysql_fetch_row($resultat);

    if ($result != NULL)
    {
    if ($result[0]==($_POST['p_login']))
    {
    echo("login probleme");
    }
    if($result[1]==($_POST['p_blog_name']))
    {
    echo("le nom de blog probleme");
    }
    Lila13

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    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
     
     
    $mysql_connexion=mysql_connect('localhost','root','');
            $mysql_connexion=mysql_select_db('stockage');
     
    $query="SELECT login,name_blog FROM information WHERE login ='$_POST['p_login']' and name_blog ='.$_POST['p_blog_name']'";
            $resultat=mysql_query($query);
            $result=mysql_fetch_array($resultat);
     
                if ($result['login']==$_POST['p_login']&&$result['name_blog']==$_POST['p_blog_name'])
                {
                    echo("login et nom de blog probleme");
                }
    else if ($result['login']==($_POST['p_login'])
                {
                    echo("login probleme");
                }
    else if($result['name_blog']==($_POST['p_blog_name'])
                    echo("le nom de blog probleme");
                }
            else
            {
    $requete ="INSERT INTO information SET login='$_POST['p_login']', password='$_POST['p_pwd']',name_blog='.$_POST['p_blog_name']';";
                //exe();
                $resultat=mysql_query($requete);
            }
    c beaucoup mieu comme ça a mon avis

    edit : tu as trouver une solution avec mysql fetch row mais mysql fetch array marche tré bien aussi..
    Stay in Bed .. Save Energy

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

Discussions similaires

  1. [MySQL] Boucle for avec requête SQL
    Par yurispy dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 12/05/2015, 23h02
  2. [Batch] [Résolus] Boucle For avec commande AT
    Par ghe69140 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 19/07/2010, 19h44
  3. manipuler une table access sous Vb.net avec commande SQL
    Par vb.net.2008 dans le forum VB.NET
    Réponses: 5
    Dernier message: 29/01/2009, 09h44
  4. Raffraichissement d'un sous rapport avec commande SQL
    Par Isabelle MI dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 08/07/2008, 14h42
  5. [Smarty] boucles imbriquées avec requêtes SQL, impossible à comprendre
    Par dexxter dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 18/05/2007, 23h52

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