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 :

php et mysql - undefined constante [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Par défaut php et mysql - undefined constante
    bonjour à tous !

    voila j ai un probleme avec un fichier php et ma base de données que je ne comprends pas

    voici ma pge php:
    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
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <!-- code pour incorporer un fichier css à la page html/php -->
            <link href="style.css" rel="stylesheet" type="text/css">       
            <title>CiteNouvelle</title>
        </head>
     
        <body>   
     
                <?php
     
                $Titre=$_POST['rd_titre'];
                $Nom=$_POST['txt_nom'];
                $nomMartial=$_POST['txt_nomMarital'];
                $Prenom=$_POST['txt_prenom'];
                $DatedeNaissance=$_POST['txt_dateNaissance'];
                $adresse=$_POST['txt_adresse'];
                $CodePostal=$_POST['txt_cp'];
                $Ville=$_POST['txt_ville'];
                $Portable=$_POST['txt_portable'];
                /* @var $adresseMail type */
                $adresseMail=$_POST['txt_mail'];
                $TelephonePersonnel=$_POST['txt_telPerso'];
                $TelephoneProfessionnel=$_POST['txt_telPro'];
                $revenu=$_POST['txt_revenu'];
     
     
                /* @var $base type */
                $base= mysqli_connect("127.0.0.1", "Alexandre" , "" , cite_nouvelle);
     
     
                $libRequête='insert into demandeur(Id,nomMarital ,prenom,titre,datedeNaissance ,adresse1 , codePost ,portable , adresseMail , telephoneDomicile , telephoneTravail , revenu)
                VALUES( 1 ,$nomMartial , $Prenom , $Titre , $DatedeNaissance , $adresse , $CodePostal ,$TelephonePersonnel,$adresseMail , $TelephonePersonnel,$TelephoneProfessionnel , $revenu)' ;                
     
                $resultat=  mysqli_query($base,$libRequête);
     
                while($donnees= mysqli_fetch_assoc($resultat))
     
                {?>
                        <p> <?php echo $donnees['nomMartial']; ?> <br> </p>
     
                 <?php
                 }
     
                 mysqli_close($base);
     
     
                ?>
     
      </body>
    </html>
    comme vous pouvez le voir j utilise la super variable globale pour traiter mes données et au bout du compte il m affiche ce message:

    Nom : Capture1.PNG
Affichages : 120
Taille : 17,7 Ko

    quand j 'éxécute le formulaire :
    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>
    <html>
        <head>
            <meta charset="UTF-8">
            <!-- code pour incorporer un fichier css à la page html/php -->
            <link href="style.css" rel="stylesheet" type="text/css">       
            <title>CiteNouvelle</title>
        </head>
     
        <body>
     
           <?php
     
     
            ?>
            <a href="Connexion.php" style="text-align: center ; color: black ; font-size: 20px ; font-family: Comic Sans MS;">Vous êtes déja inscrit --> connexion</a>
            <h4> Merci de compléter les champs ci-dessous ainsi de vous inscrire et accéder au site. </h4><br/><br/>
     
            <div class="formulaireIns">
                <img src="logo.jpg" />
                <form action="traitement.php" method="POST">
                <Label> Titre: </Label><input type="radio" value="Monsieur" name="rd_titre" class="bouton1"> Monsieur
                                       <input type="radio" value="Madame" name="rd_titre" > Madame
                                       <input type="radio" value="Mademoiselle" name="rd_titre" /> Mademoiselle <br>
            <Label> Nom: </Label>
                <input type="text" name="txt_nom" class="input1" required/><br/>
            <Label> Nom Martial: </Label>
                <input type="text" name="txt_nomMarital" class="input1" required/><br/>
            <Label> Prenom: </Label>
                <input type="text" name="txt_prenom" class="input1" required/><br/> 
            <Label> Date de naissance: </Label>
            <input type="date" name="txt_dateNaissance" class="input1" required/><br/> 
            <Label> adresse: </Label>
                <input type="text" name="txt_adresse" class="input1" required/><br/> 
            <Label> Code Postal: </Label>
                <input type="text" name="txt_cp" class="input1" required/><br/> 
            <Label> Ville: </Label>
                <input type="text" name="txt_ville" class="input1" required/><br/> 
            <Label> Portable: </Label>
                <input type="text" name="txt_portable" class="input1" required/><br/> 
            <Label> adresse E-mail: </Label>
                <input type="email" name="txt_mail" class="input1" required/><br/> 
            <Label> Téléphone personelle: </Label>
                <input type="text" name="txt_telPerso" class="input1" required/><br/> 
            <Label> Téléphone Profesionelle: </Label>
                <input type="text" name="txt_telPro" class="input1" required/><br/> 
            <Label> Revenue: </Label>
                <input type="text" name="txt_revenu" class="input1" required/><br/><br><br> 
     
                <center>
                <input type="Submit" name="btn_enregistrer" value="Enregistrer">
                </center>
                </form>
            </div>
     
        </body>
    </html>
    pourriez vous m'aider ?

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Php te dis que "cite_nouvelle" que tu utilise dans ta connexion n'est pas défini.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $base= mysqli_connect("127.0.0.1", "Alexandre" , "" , cite_nouvelle);
    Après on insère pas des variables comme ça en vrac. IL FAUT UTILISER mysqli_real_escape_string. Sinon faire des requêtes préparées.

  3. #3
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 321
    Par défaut
    Bonjour,

    c'est surtout que le fonction attend une chaine en paramètre et il existe en php les guillemets ,ou c'est une constante non définie

    ps: normalement on n'insère pas l'id avec la fonction SQL "insert" si il est auto-increment

  4. #4
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Par défaut
    merciii !


    j ai un autre probleme avec cette erreur que je ne comprends pas


    Nom : Capture1.PNG
Affichages : 92
Taille : 26,4 Ko



    et toujours ce 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
     
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <!-- code pour incorporer un fichier css à la page html/php -->
            <link href="style.css" rel="stylesheet" type="text/css">       
            <title>CiteNouvelle</title>
        </head>
     
        <body>   
     
                <?php
     
                $Titre=$_POST['rd_titre'];
                $Nom=$_POST['txt_nom'];
                $nomMartial=$_POST['txt_nomMarital'];
                $Prenom=$_POST['txt_prenom'];
                $DatedeNaissance=$_POST['txt_dateNaissance'];
                $adresse=$_POST['txt_adresse'];
                $CodePostal=$_POST['txt_cp'];
                $Ville=$_POST['txt_ville'];
                $Portable=$_POST['txt_portable'];
                /* @var $adresseMail type */
                $adresseMail=$_POST['txt_mail'];
                $TelephonePersonnel=$_POST['txt_telPerso'];
                $TelephoneProfessionnel=$_POST['txt_telPro'];
                $revenu=$_POST['txt_revenu'];
     
     
     
     
                /* @var $base type */
                $base= mysqli_connect("127.0.0.1", "Alexandre" , "" , "cite_nouvelle");
     
     
                $libRequête='insert into demandeur(Id,nomMarital ,prenom,titre,datedeNaissance ,adresse1 , codePost ,portable , adresseMail , telephoneDomicile , telephoneTravail , revenu)
                VALUES( 1 ,$nomMartial , $Prenom , $Titre , $DatedeNaissance , $adresse , $CodePostal ,$TelephonePersonnel,$adresseMail , $TelephonePersonnel,$TelephoneProfessionnel , $revenu)' ;                
     
                $resultat=  mysqli_query($base,$libRequête);
     
                    while ($donnees = mysqli_fetch_assoc($resultat)) 
                    {
                        ?>
            <p> <?php echo $donnees['nomMarital']?>; <br></p>
                    <?php
                    }
     
                 mysqli_close($base);
                 ?>
        </body>
    </html>

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ il va falloir apprendre l'anglais, ou utiliser un traducteur...

    2/ As-tu lu la doc sur la fonction mysqli_fetch_assoc() ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Par défaut rep
    ça n a aucun sens !! ma fonction prends en paramètre un booléen comme prévu ! qu est ce qui va pas ? je vois pas du tout

  7. #7
    Invité
    Invité(e)
    Par défaut
    $libRequête :
    il ne faut pas mettre de caractères accentués dans les noms de variables...



    [EDIT] Autre problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                $libRequête='insert into demandeur(Id,nomMarital ,prenom,titre,datedeNaissance ,adresse1 , codePost ,portable , adresseMail , telephoneDomicile , telephoneTravail , revenu)
                VALUES( 1 ,$nomMartial , $Prenom , $Titre , $DatedeNaissance , $adresse , $CodePostal ,$TelephonePersonnel,$adresseMail , $TelephonePersonnel,$TelephoneProfessionnel , $revenu)' ;
    Si tu utilises des '...', les varaibles PHP ne seront pas interprétées !
    Il faut utiliser des "..." autour de la requête, ainsi que des '...' autour des champs de type string :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                $libRequete = "insert into demandeur(Id,nomMarital ,prenom,titre,datedeNaissance ,adresse1 , codePost ,portable , adresseMail , telephoneDomicile , telephoneTravail , revenu)
                VALUES( 1 ,'$nomMartial' , '$Prenom' , '$Titre' , '$DatedeNaissance' , '$adresse' , '$CodePostal' ,'$TelephonePersonnel','$adresseMail' , '$TelephonePersonnel','$TelephoneProfessionnel' , '$revenu')" ;
    CELA DIT : on ne met pas de variables PHP directement dans une requête.

    On passe par une requête préparée -> mysqli_prepare ().
    Dernière modification par Invité ; 27/10/2015 à 12h00.

  8. #8
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Par défaut fetch_assoc
    oui certe mais ça résouds pas le problème ,
    ma fonction prends bien en paramètre un booléen résultat de mysqli_query ();

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Euh... où as-tu vu que mysqli_fetch_assoc prenait un booléen en paramètre ?
    Liste de paramètres
    $result : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().
    http://php.net/manual/fr/mysqli-result.fetch-assoc.php
    Ton problème c'est justement que mysqli_query a renvoyé un booléen (en l'occurrence cela signifie que mysqli_query a échoué et renvoyé false). Ajoute une condition de vérification du résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $resultat=  mysqli_query($base,$libRequete);
     
    if ($resultat !== false) {
    	while ($donnees = mysqli_fetch_assoc($resultat)) 
    	// ....
    } else {
    	echo 'Erreur : '.mysqli_error($base).' sur la requête '.$libRequete;
    }
    Et je plussoie sur le dalmatien : on n'insère pas des données brut de pomme dans une requête (surtout si elles viennent d'un formulaire). Si tu ne veux pas utiliser les requêtes préparées, applique au moins mysqli_real_escape_string sur les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Titre = mysqli_real_escape_string($base, $_POST['rd_titre']);
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  10. #10
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Par défaut
    attendez donc là , ça n 'a pas marché non pas parce que ma requête insert est fausse donc ça a renvoyé un booléen false , et il faut que j' applique la méthode escape et après ça marchera ?

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Euh... attends, je viens de remarquer un truc : on est en train d'essayer de parcourir le résultat d'une requête d'insertion. ça ne risque pas de marcher...

    Donc, on reprend. Ce qu'il faut faire :
    • construire la requête d'insertion proprement, avec les mysqli_real_escape_string sur toutes les données susceptibles d'être vérolées (tout ce qui vient du formulaire quoi...)
    • exécuter la requête d'insertion et tester le retour de la fonction. Dans le cas d'une requête d'insertion, mysqli_query va renvoyer true si la requête s'est bien passée, false si il y a eu une erreur
    • exécuter la requête de recherche et tester le retour de la fonction. Dans le cas d'une requête de recherche, mysqli_query va renvoyer false si il y a eu une erreur et une ressource à exploiter si tout va bien
    • parcourir le résultat de la requête de recherche et l'afficher
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  12. #12
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    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
    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
     
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <!-- code pour incorporer un fichier css à la page html/php -->
            <link href="style.css" rel="stylesheet" type="text/css">       
            <title>CiteNouvelle</title>
        </head>
     
        <body>
     
           <?php
     
     
     
     
     
            ?>
            <a href="Connexion.php" style="text-align: center ; color: black ; font-size: 20px ; font-family: Comic Sans MS;">Vous êtes déja inscrit --> connexion</a>
            <h4> Merci de compléter les champs ci-dessous ainsi de vous inscrire et accéder au site. </h4><br/><br/>
     
            <div class="formulaireIns">
                <img src="logo.jpg" />
                <form action="traitement.php" method="POST">
               <!-- <Label> Titre: </Label><input type="radio" value="Monsieur" name="rd_titre" class="bouton1"> Monsieur
                                       <input type="radio" value="Madame" name="rd_titre" > Madame
                                       <input type="radio" value="Mademoiselle" name="rd_titre" /> Mademoiselle <br> -->
            <Label> Nom: </Label>
                <input type="text" name="txt_nom" class="input1" required/><br/>
            <Label> Nom Martial: </Label>
                <input type="text" name="txt_nomMarital" class="input1" required/><br/>
            <Label> Prenom: </Label>
                <input type="text" name="txt_prenom" class="input1" required/><br/> 
            <Label> Date de naissance: </Label>
            <input type="text" name="txt_dateNaissance" class="input1" required/><br/> 
            <Label> adresse: </Label>
                <input type="text" name="txt_adresse" class="input1" required/><br/> 
            <Label> Code Postal: </Label>
                <input type="text" name="txt_cp" class="input1" required/><br/> 
            <Label> Ville: </Label>
                <input type="text" name="txt_ville" class="input1" required/><br/> 
            <Label> Portable: </Label>
                <input type="text" name="txt_portable" class="input1" required/><br/> 
            <Label> adresse E-mail: </Label>
                <input type="email" name="txt_mail" class="input1" required/><br/> 
            <Label> Téléphone personelle: </Label>
                <input type="text" name="txt_telPerso" class="input1" required/><br/> 
            <Label> Téléphone Profesionelle: </Label>
                <input type="text" name="txt_telPro" class="input1" required/><br/> 
            <Label> Revenue: </Label>
                <input type="text" name="txt_revenu" class="input1" required/><br/><br><br> 
     
                <center>
                <input type="Submit" name="btn_enregistrer" value="Enregistrer">
                </center>
                </form>
            </div>
     
        </body>
    </html>



    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
     
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <!-- code pour incorporer un fichier css à la page html/php -->
            <link href="style.css" rel="stylesheet" type="text/css">       
            <title>CiteNouvelle</title>
        </head>
     
        <body> 
     
     
                <?php
     
     
     
     
                /* @var $base type */
                $base= mysqli_connect("127.0.0.1", "Alexandre" , "" , "cite_nouvelle");
     
     
     
                $Nom=mysqli_real_escape_string($base,$_POST['txt_nom']);
                $nomMartial=mysqli_real_escape_string($base,$_POST['txt_nomMarital']);
                $Prenom=mysqli_real_escape_string($base,$_POST['txt_prenom']);
                $DatedeNaissance=mysqli_real_escape_string($base ,$_POST['txt_dateNaissance']);
                $adresse=mysqli_real_escape_string($base,$_POST['txt_adresse']);
                $CodePostal=mysqli_real_escape_string($base,$_POST['txt_cp']);
                $Ville=  mysqli_real_escape_string($base,$_POST['txt_ville']);
                $Portable= mysqli_real_escape_string($base,$_POST['txt_portable']);
                /* @var $adresseMail type */
                $adresseMail=  mysqli_real_escape_string($base,$_POST['txt_mail']);
                $TelephonePersonnel=mysqli_real_escape_string($base,$_POST['txt_telPerso']);
                $TelephoneProfessionnel=mysqli_real_escape_string($base,$_POST['txt_telPro']);
                $revenu=mysqli_real_escape_string($base,$_POST['txt_revenu']);
     
     
     
     
                $libRequête='insert into demandeur(Id,nomMarital ,prenom,titre,datedeNaissance ,adresse1 , codePost ,portable , adresseMail , telephoneDomicile , telephoneTravail , revenu)
                VALUES( 1 ,"$nomMartial" , "$Prenom" , "titre"" , "$DatedeNaissance" , "$adresse" , "$CodePostal" ,"$TelephonePersonnel","$adresseMail" , "$TelephonePersonnel","$TelephoneProfessionnel" , "$revenu")' ;                
                $requete2='SELECT * FROM demandeur';
                $resultat=  mysqli_query($base,$libRequête);
                $resultat2=  mysqli_query($base,$requete2);
     
                    while ($donnees = mysqli_fetch_assoc($resultat2)) 
                    {
                        ?>
            <p> <?php echo $donnees['nomMarital'].' <br>'.$donnees['prenom'] ;?>
                            <br></p>
                    <?php
                    }
     
                 mysqli_close($base);
                 ?>
        </body>
    </html>


    toutes les données sont du texte mnt mais rien ne s 'affiche après l 'éxécution du formulaire

    help !

  13. #13
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Citation Envoyé par Celira Voir le message
    Ce qu'il faut faire :
    • construire la requête d'insertion proprement, avec les mysqli_real_escape_string sur toutes les données susceptibles d'être vérolées (tout ce qui vient du formulaire quoi...)
    • exécuter la requête d'insertion et tester le retour de la fonction. Dans le cas d'une requête d'insertion, mysqli_query va renvoyer true si la requête s'est bien passée, false si il y a eu une erreur
    • exécuter la requête de recherche et tester le retour de la fonction. Dans le cas d'une requête de recherche, mysqli_query va renvoyer false si il y a eu une erreur et une ressource à exploiter si tout va bien
    • parcourir le résultat de la requête de recherche et l'afficher
    Il te manque les tests pour vérifier que tes requêtes n'ont pas explosé en vol :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $resultat=  mysqli_query($base,$libRequête);
    if ($resultat === false) {
        die ('Erreur : '.mysqli_error($base).' sur la requête '.$libRequête);
    } else {
        echo 'Insertion OK! <br>';
    }
     
    $resultat2=  mysqli_query($base,$requete2);
    if ($resultat2 === false) {
    	die ('Erreur : '.mysqli_error($base).' sur la requête '.$requete2);
    }
    A noter que ce code est une manière très très très brutale de traiter les erreurs, à utiliser uniquement pour débuguer.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  14. #14
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Par défaut
    le problème vient bien du into :

    Erreur : Unknown column '$nomMarital' in 'field list' sur la requête insert into demandeur(Id,nomMarital ,prenom,titre,datedeNaissance ,adresse1 , codePost ,portable , adresseMail , telephoneDomicile , telephoneTravail , revenu) VALUES( 1 ,$nomMarital , $Prenom, "titre" , $DatedeNaissance , $adresse , $CodePostal ,$TelephonePersonnel,$adresseMail , $TelephonePersonnel,$TelephoneProfessionnel , $revenu)



    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <!-- code pour incorporer un fichier css à la page html/php -->
            <link href="style.css" rel="stylesheet" type="text/css">       
            <title>CiteNouvelle</title>
        </head>
     
        <body> 
     
     
                <?php
     
     
     
     
                /* @var $base type */
                $base= mysqli_connect("127.0.0.1", "Alexandre" , "" , "cite_nouvelle");
     
     
     
                $Nom=mysqli_real_escape_string($base,$_POST['txt_nom']);
                $nomMarital=mysqli_real_escape_string($base,$_POST['txt_nomMarital']);
                $Prenom=mysqli_real_escape_string($base,$_POST['txt_prenom']);
                $DatedeNaissance=mysqli_real_escape_string($base ,$_POST['txt_dateNaissance']);
                $adresse=mysqli_real_escape_string($base,$_POST['txt_adresse']);
                $CodePostal=mysqli_real_escape_string($base,$_POST['txt_cp']);
                $Ville=  mysqli_real_escape_string($base,$_POST['txt_ville']);
                $Portable= mysqli_real_escape_string($base,$_POST['txt_portable']);
                /* @var $adresseMail type */
                $adresseMail=  mysqli_real_escape_string($base,$_POST['txt_mail']);
                $TelephonePersonnel=mysqli_real_escape_string($base,$_POST['txt_telPerso']);
                $TelephoneProfessionnel=mysqli_real_escape_string($base,$_POST['txt_telPro']);
                $revenu=mysqli_real_escape_string($base,$_POST['txt_revenu']);
     
     
     
     
                $libRequete='insert into demandeur(Id,nomMarital ,prenom,titre,datedeNaissance ,adresse1 , codePost ,portable , adresseMail , telephoneDomicile , telephoneTravail , revenu)
                VALUES( 1 ,$nomMarital , $Prenom, "titre" , $DatedeNaissance , $adresse , $CodePostal ,$TelephonePersonnel,$adresseMail , $TelephonePersonnel,$TelephoneProfessionnel , $revenu)' ;     
     
     
                $libRequete2="SELECT * FROM demandeur";
     
     
     
                $resultat=  mysqli_query($base,$libRequete);
     
                if ($resultat === false) {
                     die ('Erreur : '.mysqli_error($base).' sur la requête '.$libRequete);
                }
                else {
                        echo 'Insertion OK! <br>';
                    }
     
     
     
                 $resultat2=  mysqli_query($base,$libRequete2); 
     
                if ($resultat2 === false) {
                    die ('Erreur : '.mysqli_error($base).' sur la requête '.$libRequete2);
                }
                else {
                    echo 'Insertion OK! <br>';
                }
     
                    while ($donnees = mysqli_fetch_assoc($resultat2)) 
                    {
                        ?>
            <p> <?php echo $donnees['nomMarital'].' <br>'.$donnees['prenom'] ;?>
                            <br></p>
                    <?php
                    }
     
                 mysqli_close($base);
                 ?>
        </body>
    </html>
    </html>

  15. #15
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Prendre en compte toutes les remarques qui te sont faites pourrait être utile
    Citation Envoyé par jreaux62 Voir le message
    Autre problème :
    Si tu utilises des '...', les variables PHP ne seront pas interprétées !
    Il faut utiliser des "..." autour de la requête, ainsi que des '...' autour des champs de type string :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                $libRequete = "insert into demandeur(Id,nomMarital ,prenom,titre,datedeNaissance ,adresse1 , codePost ,portable , adresseMail , telephoneDomicile , telephoneTravail , revenu)
                VALUES( 1 ,'$nomMartial' , '$Prenom' , '$Titre' , '$DatedeNaissance' , '$adresse' , '$CodePostal' ,'$TelephonePersonnel','$adresseMail' , '$TelephonePersonnel','$TelephoneProfessionnel' , '$revenu')" ;
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  16. #16
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
               $libRequete='insert into demandeur(Id,nomMarital ,prenom,titre,datedeNaissance ,adresse1 , codePost ,portable , adresseMail , telephoneDomicile , telephoneTravail , revenu)
                VALUES( 1 ,$nomMarital , $Prenom, "titre" , $DatedeNaissance , $adresse , $CodePostal ,$TelephonePersonnel,$adresseMail , $TelephonePersonnel,$TelephoneProfessionnel , $revenu)' ;
    Si tu n'appliques pas les correctifs qu'on te donne, inutile de venir pleurer...




    [Oups] Celira l'a déjà dit...
    Pas vu avant (mais j'ai des problèmes de connexion internet aujourd'hui)

  17. #17
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Oui, tu devrais faire plus de tutoriels pour apprendre PHP avant de coder.

    En plus tu ne prends pas de bonnes habitudes en utilisant l'extension mysqli. Elle est surtout conçue pour mettre à jour des "vieux" codes qui utilisaient l'ancienne extension mysql.

    Comme je vois que tu es lycéen tu devrais plutôt être tourné vers l'avenir et a fortiori au minimum vers le présent. C'est PDO le standard actuel, pas mysqli.

    Après si tu veux apprendre à utiliser le minitel, ça te permettras certes de mieux comprendre les anciens mais tu n'apprendras rien de très utile pour maîtriser les technologies actuelles. Le système de requêtes est identique mais pas l'interface. Et l'extension PDO est beaucoup plus pratique et offre bien plus d'avantages que l'extension mysqli.

    Tu peux continuer dans cette direction si tu veux continuer à marche forcée, mais si tu veux pouvoir tirer un maximum de bénéfices de ton investissement temps, faudrait partir sur de meilleures bases

  18. #18
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Par défaut
    dans mon cours il est marqué mysqli donc jutilise cla

  19. #19
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Bah ça veut donc dire que c'est un vieux cours qui a été mis à jour rapidement en remplaçant "mysql" par "mysqli"...
    Tu diras à ton prof de passer à mon bureau

    Bon je charrie, PDO nécessite quelques connaissances rudimentaires en POO et si vous voulez aborder les requêtes avant d'avoir ce prérequis, effectivement mysqli est une bonne solution.

    Donc dans le cadre d'un exercice évidemment... Par contre si tu voulais développer un vrai nouveau site ce ne serait pas un bon choix de t'investir dans mysqli. PDO serait largement plus profitable en même temps que beaucoup plus agréable à écrire

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

Discussions similaires

  1. [MySQL] Probleme PHP et MySQL
    Par sadikhsy dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 30/08/2010, 14h41
  2. Problème entre PHP et MySQL
    Par kornmuse90 dans le forum Installation
    Réponses: 12
    Dernier message: 19/04/2006, 18h37
  3. [MySQL] encore un probleme php mysql
    Par ph_anrys dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/03/2006, 16h14
  4. Probleme Php et Mysql
    Par lemagicien dans le forum Requêtes
    Réponses: 13
    Dernier message: 18/10/2005, 14h09
  5. [SGBD] Probleme Avec Php et Mysql
    Par junior258 dans le forum Installation
    Réponses: 2
    Dernier message: 20/09/2005, 10h39

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