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 :

Encore problèmes avec variables [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut Encore problèmes avec variables
    Bonjour j'ai toujours des problèmes avec mes variables et mes fonctions.
    Voici le 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <?php 
    /* RECUPERATION DU LOGIN */
     
    $Login = "SOULE";
    /* Accés base de données des membres */
     
     
    /* appel de la fonction Connexion Base Anciens élèves */
     
    function connexion()  
    {
    $hote = "localhost";
    $utilisateur = "root";
    $mPasse = "";
    $nombase = "Anciens élèves";
    $connexion = mysqli_connect($hote, $utilisateur, $mPasse, $nombase) or die ("Connexion au serveur impossible.");
     
    }
    /* Appel de la fonction requête SQL */
    /* et EXTRACTION DES DONNEES */
    /* $Identifiant = "$Login" */
    $Login = "soule";
    /* $ID = "soule";  */
    $ligne = extraireinfos("$login"); 
     
    /* Exemple de Lecture des lignes avec Extract 
    $ligne = mysqli_fetch-assoc($resultat);
    extract($ligne);*/
    /* Boucle sur les différentes lignes */
    while ($ligne = mysqli_fetch_assoc($resultat))
    {extract($ligne);
     
    echo "$Nom";
     
    }
    ?>
    <?php 
    function extraireinfos($Id)  
    {
    /* Attention le nom de la table doit être mis entre ` `  ce ne sont pas des quotes' '.
     Voir si on peut le changer dans le serveur SQL */
    $requete = "SELECT nom,prénom FROM `cotisants 2009` WHERE Nom = '$ID'";
    $resultat = mysqli_query($connexion, $requete) or die ("Execution requête SQL impossible");
    return mysqli_fetch_assoc($resultat);
    }
    ?>
    </body>
    </html>
    Et voici le résultat:


    Notice: Undefined variable: login in C:\wamp\www\TESTPHP\TEST SQL.php on line 32

    Notice: Undefined variable: ID in C:\wamp\www\TESTPHP\TEST SQL.php on line 50

    Notice: Undefined variable: connexion in C:\wamp\www\TESTPHP\TEST SQL.php on line 51

    Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\wamp\www\TESTPHP\TEST SQL.php on line 51
    Execution requête SQL impossible


    Merci d'aider le débutant.

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    La variable $login n'existe pas, $Login oui.

    La variable $ID n'est pas déclarée.

  3. #3
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    c'est (encore) une question de casse. Pour php, la variable $ID est différente de la variable $Id ou $id.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Merci.
    J'ai supprimé $ID et je l'ai remplacée par $Login.
    autre problème:

    Notice: Undefined variable: connexion in C:\wamp\www\TESTPHP\TEST SQL.php on line 51

    Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\wamp\www\TESTPHP\TEST SQL.php on line 51
    Execution requête SQL impossible

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Pour plus de clarté voici le code modifié:
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <?php 
    /* RECUPERATION DU LOGIN */
     
    $Login = "SOULE";
    /* Accés base de données des membres */
     
     
    /* appel de la fonction Connexion Base Anciens élèves */
     
    function connexion()  
    {
    $hote = "localhost";
    $utilisateur = "root";
    $mPasse = "";
    $nombase = "Anciens élèves";
    $connexion = mysqli_connect($hote, $utilisateur, $mPasse, $nombase) or die ("Connexion au serveur impossible.");
     
    }
    /* Appel de la fonction requête SQL */
    /* et EXTRACTION DES DONNEES */
    /* $Identifiant = "$Login" */
     
    /* $ID = "soule";  */
    $ligne = extraireinfos("$Login"); 
     
    /* Exemple de Lecture des lignes avec Extract 
    $ligne = mysqli_fetch-assoc($resultat);
    extract($ligne);*/
    /* Boucle sur les différentes lignes */
    while ($ligne = mysqli_fetch_assoc($resultat))
    {extract($ligne);
     
    echo "$Nom";
     
    }
    ?>
    <?php 
    function extraireinfos($Login)  
    {
    /* Attention le nom de la table doit être mis entre ` `  ce ne sont pas des quotes' '.
     Voir si on peut le changer dans le serveur SQL */
    $requete = "SELECT nom,prénom FROM `cotisants 2009` WHERE Nom = '$Login'";
    $resultat = mysqli_query($connexion, $requete) or die ("Execution requête SQL impossible");
    return mysqli_fetch_assoc($resultat);
    }
    ?>
    </body>
    </html>

  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Tu définie $connexion dans le scope de ta fonction, cette variable n'est donc pas accessible ailleurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $connexion = null;
    function connexion() {
        global $connexion;
        $hote = "localhost";
        $utilisateur = "root";
        $mPasse = "";
        $nombase = "Anciens élèves";
        $connexion = mysqli_connect($hote, $utilisateur, $mPasse, $nombase) or die ("Connexion au serveur impossible.");
    }

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Merci Thomas mais c'est encore pareil sauf si je n'ai pas bien fait ce que tu me dis
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>est SQL</title>
    </head>
     
    <body>
    <?php 
    /* RECUPERATION DU LOGIN */
     
    /* $Login = "soule"; */
    /* Accés base de données des membres */
     
     
    /* appel de la fonction Connexion Base Anciens élèves */
    $connexion = null;
    function connexion() {
        global $connexion;
        $hote = "localhost";
        $utilisateur = "root";
        $mPasse = "";
        $nombase = "Anciens élèves";
        $connexion = mysqli_connect($hote, $utilisateur, $mPasse, $nombase) or die ("Connexion au serveur impossible.");
    }
     
     
    /* Appel de la fonction requête SQL */
    /* et EXTRACTION DES DONNEES */
    /* $Identifiant = "$Login" */
     
    $Login = "soule";  
    $ligne = extraireinfos("$Login"); 
     
    /* Exemple de Lecture des lignes avec Extract 
    $ligne = mysqli_fetch-assoc($resultat);
    extract($ligne);*/
    /* Boucle sur les différentes lignes */
    while ($ligne = mysqli_fetch_assoc($resultat))
    {extract($ligne);
     
    echo "$Nom";
     
    }
    ?>
    <?php 
     function extraireinfos($Login)  
    {
    /* Attention le nom de la table doit être mis entre ` `  ce ne sont pas des quotes' '.
     Voir si on peut le changer dans le serveur SQL */
    $requete = "SELECT nom,prénom FROM `cotisants 2009` WHERE nom = '$Login'";
    $resultat = mysqli_query($connexion, $requete) or die ("Execution requête SQL impossible");
    return mysqli_fetch_assoc($resultat);
    }
    ?>
    </body>
    </html>
    Résultat:
    Notice: Undefined variable: connexion in C:\wamp\www\TESTPHP\TEST SQL.php on line 52

    Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\wamp\www\TESTPHP\TEST SQL.php on line 52
    Execution requête SQL impossible

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Bonsoir,
    C'est le parcours du combattant.
    Je pensais que PHP était plu simple à maitriser surtout pour un débutant.
    Ce n'est pas le cas malgré les exemples extraits de PHP/MYSQL pour les NULS.
    Il semblerait que même les gourous ont du mal? Dois-je jeter l'éponge?
    Je suis tenace et j'ai essayé plusieurs choses:
    1) ne plus mettre en fonction l'accès à la base ça donne ceci et ça marche, mais ce n'est pas satisfaisant car je ne sais pas pourquoi je ne pouvais pas le faire marcher avec la fonction:
    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
    33
    34
    35
    36
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Exemple Appel Fonction requête SQL</title>
    </head>
     
    <body>
    <?php 
    /* appel de la fonction EXTRACTION DES DONNEES */
    /* $Identifiant = "1143" */
    $Login = "soule";
    $ligne = extraireinfos("$Login");  		
    /* RECUPERATION DES DONNEES */
    /* Exemple de Lecture des lignes avec Extract */
    /* $ligne = mysqli_fetch_assoc($resultat); */
    extract($ligne);
    echo $nom;
    ?>
    </body>
    </html>
    <?php 
    function extraireinfos($Id)  
    {
    $hote = "localhost";
    $utilisateur = "root";
    $mPasse = "";
    $nombase = "Anciens élèves";
    $connexion = mysqli_connect($hote, $utilisateur, $mPasse, $nombase) or die ("Connexion au serveur impossible.");
    /* Attention le nom de la table doit être mis entre ` `  ce ne sont pas des quotes' '.
     Voir si on peut le changer dans le serveur SQL */
    $requete = "SELECT nom,prénom FROM `cotisants 2009` WHERE Nom ='$Id'";
    $resultat = mysqli_query($connexion, $requete) or die ("Execution requête SQL impossible");
    return mysqli_fetch_assoc($resultat);
    }
    ?>
    Par contre quand je fais un copier coller pour l'intégrer à une page HTML contenant des formulaires:
    a) j'ai eu des erreurs sur la connexion apparemment à cause des accents dans élèves, j'ai donc créé une autre base sans accents et ça a marché;
    b) par contre j'ai eu une erreur sur le $resultat = mysqli_query($connexion, $requete) or die ("Execution requête SQL impossible");
    j'ai eu une erreur sur la requête avec message alors que la même instruction fonctionne avec l'autre modèle de page. Incompréhensible pour moi.
    Je suis donc bloqué à nouveau.
    Qu'en pensez-vous?
    Merci si vous pouviez vous pencher sur ce problème.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Pour plus de précision voici le code avec une trace Print_r:
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Candidature à l'AG 2010</title>
    <style type="text/css">
    <!--
    .Style1 {color: #0000FF}
    .Style2 {font-size: 18px}
    .Style3 {font-size: 18}
    -->
    </style>
    </head>
    <?php 
    /* appel de la fonction EXTRACTION DES DONNEES */
    /* $Identifiant = "1143" */
    $Login = "soule";
    $Nom = "SOULE";
    $Prénom = "Jacques";
    $ligne = extraireinfos("$Login");  		
    /* RECUPERATION DES DONNEES */
    /* Exemple de Lecture des lignes avec Extract */
    $ligne = mysqli_fetch_assoc($resultat); 
    extract($ligne);
     
     
    ?>
    <body>
    <p><span class="Style1">ACCUSE DE RECEPTION DE CANDIDATURE au CONSEIL d' ADMINISTRATION</span></p>
    <p class="Style2">Cher Berthelotin,</p>
    <p class="Style2"> Nous accusons réception de votre candidature au conseil d'administration :</p>
     
     
     
     
     
     
    <p>NOM : <?php echo "$Nom" ?></p>
    <p>PRENOM :  <?php echo "$Prénom" ?></p>
    <p class="Style2">et vous contacterons ultèrieurement.  </p>
    <p class="Style2">Cordialement,  </p>
    <p class="Style2">Le Président </p>
     
    </body>
    </html>
    <?php 
    function extraireinfos($Id)  
    {
    $hote = "localhost";
    $utilisateur = "root";
    $mPasse = "";
    $nombase = "Anciens eleves";
    $connexion = mysqli_connect($hote, $utilisateur, $mPasse, $nombase) or die ("Connexion au serveur impossible.");
    /* Attention le nom de la table doit être mis entre ` `  ce ne sont pas des quotes' '.
     Voir si on peut le changer dans le serveur SQL */
    $requete = "SELECT nom,prénom FROM `cotisants 2009` WHERE Nom ='$Id'";
    print_r($connexion);
    print_r($requete);
    $resultat = mysqli_query($connexion, $requete) or die ("  Execution requête SQL impossible");
    return mysqli_fetch_assoc($resultat);
    }
    ?>
    Et le résultat:

    mysqli Object ( [affected_rows] => 0 [client_info] => mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $ [client_version] => 50005 [connect_errno] => 0 [connect_error] => [errno] => 0 [error] => [field_count] => 0 [host_info] => MySQL host info: localhost via TCP/IP [info] => [insert_id] => 0 [server_info] => 5.1.36-community-log [server_version] => 50136 [sqlstate] => 00000 [protocol_version] => 10 [thread_id] => 32 [warning_count] => 0 ) SELECT nom,prénom FROM `cotisants 2009` WHERE Nom ='soule' Execution requête SQL impossible

  10. #10
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $nombase = "Anciens élèves";
    SELECT nom,prénom FROM `cotisants 2009` WHERE Nom ='$Id'
    Là, ça va pas du tout, mais franchement pas du tout


    Ca va être un pure conseil, (donc à titre personnel), mais si tu veux faire du développement, alors il faudra perdre (le plus vite possible) toutes ces fantaisies sur la façon de nommer les choses.

    Dans le jargon, on appel ça des règles de nommages. Il te faut en adopter.

    Le truc le plus simple : Abandonner tout ce qui est caractères spéciaux, mais alors tout, et pas seulement pour la Base de données, mais aussi pour les noms des fichiers et des répertoires, variables Php, Html, Css, etc, etc ... tout ce qui touche le développement.
    Ca peu paraitre une (grosse) restriction/contrainte, mais à la longue, on s'y fait, et ça ne l'est plus.
    Réserve ça uniquement aux contenus (les texte).

    Si tu applique cette règle, tu vas éliminer automatiquement une pléiades d'erreurs/bugs potentiels, c'est 100% garanti (sur ce point)

    Faire la liste des caractère spéciaux n'est pas la bonne solution, il est plus simple de lister les caractères conventionnels, autorisés.
    C'est simple : c'est l'alphabet (26 * 2 caractères avec les majuscules) et les chiffres (10 caractères) et ceci : _ - (c'est tout, et ça suffit largement).
    Par convention, et pour simuler un espace (car un espace fait parti des caractères spéciaux) on utilise le underscore _

    Du coup, le nom de ta base de donnée sera 100 fois fois mieux comme ceci : anciens_eleves
    Le nom de la table : cotisants_2009
    Les noms de tes champs : nom, prenom, date_naissance, etc ... (sans éàùéç&"ï($;:!, ...etc ... et autre espace)

    Aussi, je remarque que tu ne fait pas gaffe aux Majuscule et Minuscule.
    Il faut pourtant faire gaffe.
    Ca dépend beaucoup de paramètre, (le système (l'Os), comment est configuré la Bdd, le langage (Php), etc, etc ...), Mais là encore il vaut mieux respecter des règles.
    Un nom de champ de sa Bdd genre Date_De_Naissance par exemple c'est fantaisiste, ça sert à rien, de plus, et pour la "casse", une minuscule et une majuscule c'est 2 caractères bien distincte, un ABC n'est pas équivalent à AbC de même que aBC.
    Même si un système comme Microsoft ne fait pas la distinction (les considères identiques), d'autres systèmes ou autres Soft font parfaitement la distinction.
    D'ailleurs, c'est un des problèmes que tu rencontre.
    Le champ Nom n'est pas le même que nom, c'est pas pareil


    Tu veux persévérer, et bien soit plus rigoureux sur ce point là.
    Pas de fantaisie, il n'y a pas de place pour ça dans ce domaine.
    En somme, c'est très simple, du moins l'explication est simple : Les langages de programmations (du moins ceux qui nous intéressent) vient de l'Anglais. Donc en Anglais il n'y a pas de é ç à etc ... c'est propre au Français. Faut perdre cette habitude.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Bonjour RuncodePHP,
    Merci pour tous les conseils fondamentaux que tu me donnes, je vais m'empresser de les suivre pour éviter ce genre de problèmes et il va falloir que je renomme tous les champs de ma BDD. Un peu de boulot sans oublier les sauvegardes.
    Cependant je ne comprends pas que dans un cas ça marche et que les mêmes instructions placées dans une autre page par copier/coller ne fonctionne pas.
    Si tu regardes mon exemple avec la trace tu t'aperçois que les champs sont corrects, alors pourquoi le mysqli_query fonctionne dans un cas et pas dans l'autre? C'est du casse tête...
    Penses-tu que ça vienne cependant de mes noms bizarres? Ou est-ce que ça vient du copier/coller ou de l'emplacement des fonctions dans la structure de la page?
    Merci à toi si tu avais le temps de jeter un oeil, de mon côté je vais faire ce que tu me dis et te tiendrais au courant.

  12. #12
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Bonsoir,
    C'est le parcours du combattant.
    Je pensais que PHP était plu simple à maitriser surtout pour un débutant.
    Tu as oublié d'appeler la fonction connexion().

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    Merci à tous.
    Vos conseils se sont révélés positifs.
    Après correction de tous ces caractères franco-franchouillards cela a permis de débloquer la situation.
    Les "NULS" devraient insister particulièrement sur ce point, ou alors il faudra que je relise ce qui est dit au niveau des noms de variables et de la base de données.
    Vous avouerez quand même que c'est curieux que ça marche dans un cas et pas dans l'autre.....
    Je continue donc ma formation et mes tests.
    A+

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut Ce à quoi on a droit pour définir une variable PHP ou une définition MYSQL
    Je signale que le livre "PHP/MYSQL pour les NULS" de Janet Valade ne mentionnent rien de spécial pour les noms de variables et donne même des exemples avec des lettres accentuées (qui bien sûr ne sont pas toujours des variables)et qui prête à confusion pour un débutant comme moi.
    Ils disent simplement "Un nom de variable peut comporter des lettres, des chiffres ou des traits de soulignement (underscore).
    Pour la base de données Mysql en page 53 de mon livre, ils donnent des exemples de définition de tables avec des accents comme "Prénom" par exemple ou encore "département".
    Il peut s'agir d'une erreur du traducteur bien sûr qui se croit obligé d traduire en bon français ce qui est comme vous l'avez dit une erreur pour les langages de programmation en général issus de la langue anglaise.
    Moralité si on peut il vaut mieux avoir accès au livre original en tout cas il faut comme vous le conseillez se limiter aux lettres de A-Z et a-z plus les chiffres de 0-9 et le _.

  15. #15
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    pitou31, ne dites pas n'importe quoi...

    Vous vous êtes trompés dans le nommage de vos variables, vous déclariez une variable nommée Toto puis utilisiez une variable nommée toto : ce qui ne fonctionne pas.

    Le livre dit bien qu'il est possible d'utiliser des accents et certains caractères spéciaux, mais en aucun cas que PHP ne respecte pas la casse des caractères !

    Concernant le SQL, les noms possédant des caractères spéciaux doivent être compris dans un échappement système :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM `Èlèves` WHERE `Prénom`="Toto"
    Ce ne sont en aucun cas des erreurs de programmation.

    À bientôt,

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut
    OK Thomas, mais il y avait deux problèmes indépendants (revoir les sources):
    1) concernant le nom des variables entre majuscule et minuscules, je fais mon méaculpa il s'agissait bien d'une erreur de programmation,
    2) l'autre erreur était beaucoup plus insidieuse car d'un programme à l'autre les mêmes instructions interprétées fonctionnaient correctement ou pas (voir le nom de la base de données avec accent "Anciens élèves). Il a suffi que je renomme correctement cette base de données en enlevant les accents partout y compris dans les champs des tables, pour que le programme qui ne fonctionnait pas se mette à fonctionner. Donc rien à voir avec le point 1.

    Désolé mais dans le livre pour les NULS il y a bien des exemples notamment en page 53 qui sont contraires, je pense qu'il s'agit d'un problème de traduction, et en aucun cas on ne mentionne des caractères d'échappement, il ne s'agit pas de littéraux mais bien de définition de noms de variables ou de nom de champs dans les tables Mysql.
    Pour être utile à la communauté des débutants, comme vous l'avez été avec moi, je propose d'ouvrir un rubrique à ce sujet et aux livres à conseiller.
    Qu'en penses-tu?

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/02/2007, 19h39
  2. Problème avec variable d'environnement
    Par beegees dans le forum ASP
    Réponses: 7
    Dernier message: 13/12/2006, 15h29
  3. Réponses: 2
    Dernier message: 10/12/2006, 09h57
  4. Problème avec variable dynamique
    Par moyjunior dans le forum Linux
    Réponses: 2
    Dernier message: 22/11/2006, 11h46
  5. [Système] Problème avec variables
    Par marie4449 dans le forum Langage
    Réponses: 3
    Dernier message: 22/05/2006, 19h42

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