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 :

if considéré mal reconnu [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut if considéré mal reconnu
    Hello

    J'ai un problème avec le code suivant :


    Code php : 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    $db = mysql_connect('localhost', 'root', ''); 
    mysql_select_db('avion',$db); // on se connecte dans phpmyadmin à la base avion qui contient les infos
     
    $sql = "SELECT * FROM CLIENTS WHERE pseudo='".mysql_real_escape_string($pseudo)."' AND mdp='".mysql_real_escape_string($mdp)."'"; // ici on cherche que le pseudo et le mot de passe sont bien dans la base pour se connecter
     
    $req = mysql_query($sql) or die ('ERREUR '.mysql_error());
     
    $data = mysql_fetch_array($req); 
     
    echo "<p>Bonjour ".$data['gentile']." ".$data['prenom']." ".strtoupper($data['nom']); // gentile affiche si une personne est madame ou monsieur , on affiche également le prenom et le nom en majuscule
     
    echo "Vous habitez ".$data['num_voie']." ".$data['type_voie']." ".$data['nom_voie']; // ici on affiche l'adresse le numéro de porte dans la rue + le nom et le type de voie postale , exemple : 15 Boulevard de Dijon
     
    // ici avec num_bloc je suppose qu'une personne habite dans un bloc donné , par exemple : bloc d'appartement 17 . Il faut donc que je vérifie si $data['num_bloc'] n'est pas une chaine vide , si c'est le cas je ne souhaite pas afficher se champs , je renvoie une chaine vide 
     
    if (strlen($data['num_bloc'])=0) 
    { 
    $num_bloc=" ";
    }
    else
    {
    $num_bloc="Bloc d'appartement n°".$data['num_bloc'];
    }
     
    // ici avec num_porte meme principe , par exemple : porte 24 . Il faut donc que je vérifie si $data['num_porte'] n'est pas une chaine vide , si c'est le cas je ne souhaite pas afficher se champs , je renvoie une chaine vide 
     
    if (strlen($data['num_bloc'])=0)
    { 
    $num_porte=" ";
    }
    else
    {
    $num_porte="Porte n°".$data['num_porte'];
    }
     
    // au final je souhaite avoir une phrase du style : Vous habiter 15 Boulevard de Dijon , Bloc d'appartement 17  , porte 24 
     
    // problème 1 : php considère mon if comme une ligne de code ou j'affecte quelque chose , je ne vois pas d'ou se que j'ai oublié ? C'est pas == au lieu de = ?
     
    // problème 2 : strlen($machaine) est vide , si elle vide j'affiche rien , si elle est remplie j'affiche $machainebis
     
    // merci de me tuyauter ;)

  2. #2
    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
    Ca aurait été bien de nous décrire le problème mais bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (strlen($data['num_bloc'])===0)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut
    Merci

    Par contre je viens de tomber sur cette ligne d'erreur :

    Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp\www\site web\monespaceclient.php on line 158
    pour le premier if .

    Apparemment une erreur de variable , la je sèche

    Ca aurait été bien de nous décrire le problème mais bon
    Selon ce qui est trouver dans le if , j'affiche une ou plusieurs partie de l'adresse . Problème php ne reconnait pas le ligne du if et ce qu'il doit y faire.

  4. #4
    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
    Le premier et le deuxième if ce ne seraient pas les mêmes ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonsoir,

    plusieurs choses,

    les fonctions mysql_ sont obsolètes, il est préférable de passer au API mysqli_ ou PDO.

    ensuite,

    mysql_select_db('avion',$db); // on se connecte dans phpmyadmin à la base avion qui contient les infos
    tu ne te connecte pas à PHPMyAdmin mais à MySQL qui sont deux choses totalement différentes,

    PHPMyAdmin est une interface web qui se connecte à MySQL pour pouvoir gérer tes bases de données (ajouter une base de donnée, ajouter une table, ...),

    alors que MySQL est le serveur de base de données.

    $data = mysql_fetch_array($req);
    ici tu utilise la fonction mysql_fetch_array() seulement imagine que t'a requête ne revoie pas de résultat, ton script plante car $req n'est pas une ressource exploitable par la fonction mysql_fetch_array().

    il faut dans ce cas utiliser les structure de contrôle if(), ou while() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //si ta requête ne renverra qu'un seul résultat OBLIGATOIREMENT
    //Comme par exemple pour récupérer les informations d'un utilisateur qui vient de se connecter
    if( $data = mysql_fetch_array($req) ){
        //Traitement du résultat de la requête
    }else{
        echo 'erreur aucune données n\'existe';
    }
     
    //Si ta requête risque de remonter plusieurs résultats
    //Comme par exemple récupérer toutes les pages appartenant à la catégorie toto
    while( $data = mysql_fetch_array($req) ){
        //Traitement des résultats
    }
    ensuite,

    if (strlen($data['num_bloc'])=0)
    {
    $num_bloc=" ";
    }
    else
    {
    $num_bloc="Bloc d'appartement n°".$data['num_bloc'];
    }

    if (strlen($data['num_bloc'])=0)
    {
    $num_porte=" ";
    }
    else
    {
    $num_porte="Porte n°".$data['num_porte'];
    }
    ici deux fois le même test (taille de la chaîne de caractère $data['num_bloc']),

    tu pourrait regrouper alors tes deux traitements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //Utilisation de la fonction empty() qui test si un variable n'est pas vide
    if ( !empty($data['num_bloc']) { 
        $num_bloc=" ";
        $num_porte=" ";
    }else{
        $num_bloc="Bloc d'appartement n°".$data['num_bloc'];
        $num_porte="Porte n°".$data['num_porte'];
    }
    La fonction empty().

    Il te suffit alors d'utiliser les variables $num_bloc et $num_porte.
    une réponse vous a permis d'avancer ?

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut
    Hello

    J'ai bien pris en compte vos codes

    Merci

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

Discussions similaires

  1. variable mal reconnue
    Par Félix62 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/05/2007, 19h59
  2. Cygwin+emacs, clavier mal reconnu
    Par al1_24 dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 22/01/2007, 18h26
  3. Extension mal reconnue
    Par skalia dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 30/06/2006, 16h00
  4. [Sécurité] Session mal reconnues
    Par Anduriel dans le forum Langage
    Réponses: 9
    Dernier message: 21/12/2005, 20h51
  5. Le kernel version 2.6.3-mdk mal reconnu
    Par christophe D dans le forum Administration système
    Réponses: 5
    Dernier message: 23/03/2004, 10h03

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