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

Langage PHP Discussion :

Array ( [0] => 42S22 [1] => 1054 [2] => Unknown column 'civ2' in 'field list' ) 1 [PHP 5.3]


Sujet :

Langage PHP

  1. #21
    Invité
    Invité(e)
    Par défaut
    C'est bien ce qu'on disait. (un bon point pour Celira )

    Ta requete est fausse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req = $bdd->prepare('INSERT INTO voeux_clients(civ2, nom2, prenom2, contact2, email2, message2, today2)
    ...........
    Il faut mettre les noms corrects des champs de la bdd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $req = $bdd->prepare('INSERT INTO voeux_clients (civilite, nom, prenom, contact, email, message, date_envoi)
        VALUES (:civ2, :nom2, :prenom2, :contact2, :email2, :message2, :today2)');
        $req->execute(array(
            ':civ2' => $civ2,
            ':nom2' => $nom2,
            ':prenom2' => $prenom2,
            ':contact2' => $contact2,
            ':email2' => $email2,
            ':message2' => $message2,
            ':today2' => $today2
    Dernière modification par Invité ; 11/05/2016 à 07h26.

  2. #22
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Points : 49
    Points
    49
    Par défaut
    Aaaaaaaaaaaaaaaaaaah wiiiiiiii, Merci beaucoup jreaux62 . Vraiment merci! Tu as bien fais de me demander la structure de la table alors. Entre temps elle était ouverte à mes yeux. Thank Mister!

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

    Remercie surtout Celira qui a mis le doigt dessus avec sa (fausse) question "bête".


    Et pense à les messages qui t'ont aidé.
    Dernière modification par Invité ; 12/05/2016 à 08h32.

  4. #24
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Points : 49
    Points
    49
    Par défaut
    Merci Celira pour ton aide. Ce problème est resolu grace à vos aides... Encore merci

  5. #25
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 386
    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 386
    Points : 10 413
    Points
    10 413
    Par défaut
    Salut,

    Et maintenant que ça fonctionne tu peux enlever les $bdd->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING); que je t'avais fait rajouter dans ton code et qui avaient confirmés les soupçons de Celira.

    Souviens-toi à cette occasion que php ne se trompe jamais et quand il renvoie (si on les fait afficher) une erreur sql identifiable avec le "SQLSTATE[...]", genre Unknown column 'civ2' in 'field list', il parle des champs de ta table, pas des champs du formulaire. Si un champ du formulaire avait manqué tu aurais eu une erreur php et non pas une erreur sql (avec le "SQLSTATE").

    En mode production on supprime les messages d'erreur sql pour ne pas donner d'informations aux visiteurs/pirates en cas de problèmes, ou alors on les gère dans des blocs try/catch avec le mode exception en renvoyant des messages anodins. Tant qu'on ne maîtrise pas correctement le mode exception, il est plus sage de mettre en mode "silence" qui est le mode par défaut si on ne définit pas PDO::ATTR_ERRMODE.

  6. #26
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Points : 49
    Points
    49
    Par défaut
    Je replace encore le code:
    voici la page du 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
     
            <body>
    		<div id="bloc_page">
    		        <?php include('entete.php'); ?>
    			<section class="row">
    			    <article class="col-md-12 col-sm-12 col-xm-12">
                        <h2>Remplissez ces champs et faites nous parvenir votre message svp!</h2>
                        <h3><u>Formulaire:</u></h3>
                        <form name="inscription" method="post" action="result_voeux.php">
    				        Mr<input type="radio" name="civ" value="Mr"> 
    					    Mme<input type="radio" name="civ" value="Mme"> 
    					    Mlle<input type="radio" name="civ" value="Mlle"> </br></br>
                            Votre Nom :  &nbsp;&nbsp;<input type="text" name="nom"/> <br/><br/>
                            Vos prenoms: <input type="text" name="prenom"/> </br><br/>
                            Vos contacts :<input type="text" name="contact"/><br/><br/>
    					    Votre email : <input type="email" name="email"/><br/>
    					    <p class="msg">
    					        <h3><u>Votre Message ici:</u></h3>
     
                 					    <textarea name="message" rows="10" cols="45" placeholder="Votre message ici">
     
    								    </textarea>
    								    <input type="submit" name="valider" value="Valider"/>
     
    					    </p>
    					</form>
    				</article>
    			</section>
    	    </div> 
    					<?php
    					    include ('new_footer.php');
    					?>
    					<script src="js/jquery.js">	</script>
    				    <script src="js/bootstrap.min.js"></script>
    </body>
    </html>
    Voici ensuite le code de la page de traitement:
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
     
    	    <body>    
    			    <div id="bloc_page">
    				    <?php
    					    include("entete.php");
    					    /* include("fonctions.php"); */
                        ?>
    			        <section class="row">
    		                <div  align="center" class="col-md-12 col-sm-12 col-xm-12">       
                                <?php
                                    if(isset($_POST['valider']))
    						            {
                                            //On récupère les valeurs entrées par l'utilisateur :
    							$civ=$_POST['civ'];
                                $nom=$_POST['nom'];
                                $prenom=$_POST['prenom'];
                                $contact=$_POST['contact'];
    							$email=$_POST['email'];
    							$message=$_POST['message'];
                                //On construit la date d'aujourd'hui strictement comme sql la construit
                                $today = date("y-m-d");
     
    				            echo '<h2>Vos informations saisies sont les suivantes<br></h2>';
    					        echo $civ.' '. htmlspecialchars($_POST['nom']).' '.htmlspecialchars($_POST['prenom']).'<br><u>Vos contacts:</u>'.htmlspecialchars($_POST['contact']).'<br> <u>Adresse E-mail:</u> '.htmlspecialchars($_POST['email']).'</br> Ensuite <u>votre message:</u> '.nl2br (htmlspecialchars ($_POST['message'])).'<br> 
    						    <form method="POST" action="result_voeux.php" >
    						        <input type="hidden" name="civ2" value="'.$civ.'">
    	                            <input type="hidden" name="nom2" value="'.$nom.'">
    	                            <input type="hidden" name="prenom2" value="'.$prenom.'">
    	                            <input type="hidden" name="contact2" value="'.$contact.'">
    	                            <input type="hidden" name="email2" value="'.$email.'">
    	                            <input type="hidden" name="message2" value="'.$message.'"> </br>
    	                            '.'date : '. date("y-m-d").'<br>
    							   <input type="submit" name="annuler" value="Annuler"> &nbsp; &nbsp
    	                           <input type="submit" name="confirmer" value="Confirmer">
    					       </form>';
    					    }   
    						?>	  
    						<?php
    						if(isset($_POST['confirmer']))
    						{
    						//récupération des variables issues de la confirmation
    							$civ2=isset($_POST['civ2']) ? $_POST['civ2'] : '' ;
                                $nom2 = isset($_POST['nom2']) ? $_POST['nom2'] : '' ;
                                $prenom2 = isset($_POST['prenom2']) ? $_POST['prenom2'] : '' ;
                                $contact2= isset($_POST['contact2']) ? $_POST['contact2'] : '';
    							$email2= isset($_POST['email2']) ? $_POST['email2'] : '';
    							$message2= isset($_POST['message2']) ? $_POST['message2'] : '';
    							$today2 = date('y-m-d');
     
    							try
    		                        {
    		                            //On se connecte à mysql
    		                            $bdd = new PDO ('mysql:host=localhost;dbname=bdsogim', 'root', '');
    									//$bdd->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
    									$bdd->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
    		                        }
    		                            catch(Exception $e)
    			                            {
    				                            //En cas d'erreur, on affiche un message et on arrète tout
    											$bdd->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
    				                            die('Erreur:'.$e->get_Message());
    				                        }
     
    	                    $req = $bdd->prepare('INSERT INTO voeux_clients(civ2, nom2, prenom2, contact2, email2, message2, today2) 
    	                    VALUES(:civ2, :nom2, :prenom2, :contact2, :email2, :message2, :today2)');
    	                    $req->execute(array(
    		                ':civ2'=>$_POST['civ2'], 
    		                ':nom2'=>$nom2, 
    		                ':prenom2'=>$prenom2, 
    		                ':contact2'=>$contact2, 
    		                ':email2'=>$email2, 
    		                ':message2'=>$message2, 
    		                ':today2'=>$today2)) or die (print_r($req->errorInfo()));
     
    						   $req->closeCursor();
    							echo ' <h4>Votre demande a bien été enregistré!</h4>';
    							echo ' <h4>Merci de nous avoir écrit!</h4>';	
    						}
                                else
    							    {
    						            location:header('voeux.php');     
    							    }							
                          ?>
    		        </div>
    					<?php
                            include('new_footer.php');
                        ?>					  	
    		    </section> 
            </div>
    Après exécution, voici le message d'erreur qu'on m'affiche:

    Encore merci pour le temps que vous accordez à l'analyse des préoccupations de tous le monde.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. #1054 - Unknown column 'created_at' in 'field list'
    Par Jeandu44 dans le forum Requêtes
    Réponses: 8
    Dernier message: 02/05/2016, 14h30
  2. #1054 - Unknown column 'dateRecherche' in 'where clause
    Par omelhor dans le forum Requêtes
    Réponses: 5
    Dernier message: 30/12/2011, 11h01
  3. 1054 - Unknown column 'L' in 'field list'
    Par Pacman23 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 05/10/2009, 10h12
  4. erreur : #1054 - Unknown column 'Martin' in 'where clause'
    Par éric1 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/08/2009, 15h29
  5. 1054 - Unknown column 'language_id' in 'where clause'
    Par Tonio_17000 dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/06/2009, 22h01

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