Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème requête sql

Erreur : SQLSTATE[42S22]

Sujet résolu
    28 mai 2011 à 10:26:50

    Bonjour à tous !

    J'ai un petit problème avec la requête sql du script php suivant (à partir de la ligne 147, c'est à la fin).

    l'erreur est la suivante : Erreur : SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Nombre_de_pages' in 'field list'

    Pourtant dans la base de phpmyadmin correspondante 'bibliotheque' il y a bien un champ 'Nombre_de_pages' ...

    Merci d'avance

    <?php
    $bdd = new PDO('mysql:host=localhost;dbname=bibliotheque', 'root', '');
    ?>

    <?php
    // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
    if (isset($_FILES['Photo_livre']) AND $_FILES['Photo_livre']['error'] == 0)
    {
    // Testons si l'extension est autorisée
    $infosfichier = pathinfo($_FILES['Photo_livre']['name']);
    $extension_upload = $infosfichier['extension'];
    $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
    if (in_array($extension_upload, $extensions_autorisees))
    {
    // On peut valider le fichier et le stocker définitivement
    move_uploaded_file($_FILES['Photo_livre']['tmp_name'], 'images/' . basename($_FILES['Photo_livre']['name']));
    echo "L'envoi a bien été effectué !";
    }
    }
    ?>



    <html>

    <head>

    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
    <?php


    /* Auteur,Editeur,Annee_de_parution,Langue,Nombre_de_pages,Sous-titre,ISBN,Couverture,Resume,Note */
    /*
    $_POST['Auteur'];
    $_POST['Titre'];
    $_POST['Editeur'];
    $_POST['Annee_de_parution'];
    $_POST['Langue'];
    $_POST['Nombre_de_pages'];
    $_POST['Sous-titre'];
    $_POST['ISBN'];
    $_POST['Couverture'];
    $_POST['Resume'];
    $_POST['Note'];
    */

    /* On vérifie que ls champs obligatoires ont bien été remplis : L'auteur, l'editeur, et le titre */

    if (($_POST['Auteur']=="")||($_POST['Editeur']=="")||($_POST['Titre']=="")||($_POST['ISBN']==""))
    {
    if($_POST['Auteur']=="") echo "Veuillez saisir le nom de l'auteur <BR>\n" ;
    if($_POST['Editeur']=="") echo "Veuillez saisir le nom de l'editeur <BR>\n" ;
    if($_POST['Titre']=="") echo "Veuillez saisir le titre <BR>\n" ;
    if($_POST['ISBN']=="") echo "Veuillez saisir le ISBN <BR>\n" ;
    }



    else
    {
    $_POST['ISBN']=(int)$_POST['ISBN'];
    if ($_POST['ISBN']<1)
    {
    echo "ISBN incorrect";
    }
    else
    {
    ?>
    <p> Récapitulatif des informations saisies </br>
    </br>
    Auteur : <?php echo htmlspecialchars($_POST['Auteur']); ?> </br>
    Titre :<?php echo htmlspecialchars($_POST['Titre']); ?> </br>
    Editeur : <?php echo htmlspecialchars($_POST['Editeur']); ?> </br>
    <?php
    if (!($_POST['Annee_de_parution']==""))
    {
    $_POST['Annee_de_parution']=(int)$_POST['Annee_de_parution'];
    if ( ($_POST['Annee_de_parution']>2011) || ($_POST['Annee_de_parution']<1000) )
    {
    echo "mauvaise annee de parution"; ?> </BR> <?php
    }
    else
    {
    ?>
    Annee de parution : <?php echo htmlspecialchars($_POST['Annee_de_parution']); ?> </br>
    <?php
    }
    }
    if (!($_POST['Langue']==""))
    {
    ?>
    Langue : <?php echo htmlspecialchars($_POST['Langue']); ?> </br>
    <?php
    }
    if (!($_POST['Nombre_de_pages']==""))
    {
    $_POST['Nombre_de_pages']=(int)$_POST['Nombre_de_pages'];
    if ($_POST['Nombre_de_pages']<1)
    {
    echo "vous n'avez pas rentrer le bon nombre de pages"; ?> </br> <?php
    }
    else
    {
    ?>
    Nombre de pages : <?php echo htmlspecialchars($_POST['Nombre_de_pages']); ?> </br> <?php
    }
    if (!($_POST['Nombre_de_pages']==""))
    {
    ?>
    Sous-titre : <?php echo htmlspecialchars($_POST['Sous-titre']); ?> </br> <?php
    }
    }
    ?>

    ISBN : <?php echo htmlspecialchars($_POST['ISBN']); ?> </br> <?php

    if (!($_POST['Resume']==""))
    {
    ?>
    Resume : <?php echo htmlspecialchars($_POST['Resume']); ?> </br> <?php
    }

    if (!($_POST['Note']==""))
    {
    $_POST['Note']=(int)$_POST['Note'];
    if ($_POST['Note']>20||$_POST['Note']<0)
    {
    ?>
    <p> La note doit etre comprise entre 0 et 20 ! </p>
    <?php
    }
    else
    {
    ?>
    Note : <?php echo htmlspecialchars($_POST['Note']); ?> </br> <?php
    }
    }

    try
    {
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=bibliotheque', 'root', '', $pdo_options);

    $req = $bdd->prepare('INSERT INTO livres(Titre,Auteur,Editeur,Annee_de_parution,Langue,Nombre_de_pages,Sous_titre,ISBN,Couverture,Resume,Note)
    VALUES(:Titre, :Auteur, :Editeur, :Annee_de_parution, :Langue, :Nombre_de_pages, :Sous_titre, :ISBN, :Couverture, :Resume, :Note )');
    $req->execute(array(
    'Titre' => $_POST['Titre'],
    'Auteur' => $_POST['Auteur'],
    'Editeur' => $_POST['Editeur'],
    'Annee_de_parution' => $_POST['Annee_de_parution'],
    'Langue' => $_POST['Langue'],
    'Nombre_de_pages' => $_POST['Nombre_de_pages'],
    'Sous_titre' => $_POST['Sous-titre'],
    'ISBN' =>$_POST['ISBN'],
    'Couverture' => $_FILES['Photo_livre']['name'],
    'Resume' => $_POST['Resume'],
    'Note' => $_POST['Note']
    ));

    ?>
    Le livre a bien été ajouté ! </br> <?php
    }
    catch(Exception $e)
    {
    die('Erreur : '.$e->getMessage());
    }


    }
    }
    ?>
    </p>
    </body>
    </html>
    • Partager sur Facebook
    • Partager sur Twitter
      28 mai 2011 à 11:46:32

      Le message qui suit est une réponse automatique activée par un modérateur.
      Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.


      Merci d'utiliser les balises de code


      Bonjour,

      Les forums du Site du Zér0 disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source.
      Vous avez posté un code source sans utiliser cette fonctionnalité. Pourriez-vous éditer votre message afin d'ajouter ces balises ? Pour cela, sélectionnez votre code à colorer et utilisez le bouton Image utilisateur afin de choisir la coloration adaptée. Veillez à bien choisir le langage de programmation afin que la coloration soit pertinente.

      De plus, veillez à ce que votre code soit correctement indenté.

      Afin de ne pas surcharger le sujet, ne postez pas votre code coloré dans un nouveau message mais éditez le premier (grâce au bouton Image utilisateur).

      Cela aura pour effet de "colorer" votre code et donc d'en faciliter grandement la lecture. Vous aurez ainsi beaucoup plus de chances d'avoir des réponses.

      Voici un exemple de code non coloré (mauvais exemple) :

      int main(int argc, char *argv[])
      {
      long choixOperation;

      printf("Choisissez l'operation a effectuer");
      /* etc. */
      }

      Voici maintenant le même code coloré, utilisant la balise "code" (bon exemple) :

      int main(int argc, char *argv[])
      {
          long choixOperation;
      
          printf("Choisissez l'operation a effectuer");
          /* etc. */
      }
      


      C'est plus clair n'est-ce pas ? ;)

      Plus d'informations à ce sujet.

      Merci de votre compréhension. :)
      Les modérateurs.
      • Partager sur Facebook
      • Partager sur Twitter
      Pwaite.net > Transfert de crédit téléphonique et monétisation de site web                                                                                        « I am awesome »
        28 mai 2011 à 12:50:18

        Voici le code un peu plus correct, le problème doit se situé vers la ligne 147...

        <?php
        $bdd = new PDO('mysql:host=localhost;dbname=bibliotheque', 'root', '');
        ?>
        
        <?php
        // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
        if (isset($_FILES['Photo_livre']) AND $_FILES['Photo_livre']['error'] == 0)
        {
                   // Testons si l'extension est autorisée
                   $infosfichier = pathinfo($_FILES['Photo_livre']['name']);
                   $extension_upload = $infosfichier['extension'];
                   $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                   if (in_array($extension_upload, $extensions_autorisees))
                   {
            			// On peut valider le fichier et le stocker définitivement
                        move_uploaded_file($_FILES['Photo_livre']['tmp_name'], 'images/' . basename($_FILES['Photo_livre']['name']));
                        echo "L'envoi a bien été effectué !";
                   }
        }
        ?>
        
        
        
        <html>
        
        	<head>
        
               <title></title>
               <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           </head>
           <body>
           <?php
           
           
           /* Auteur,Editeur,Annee_de_parution,Langue,Nombre_de_pages,Sous-titre,ISBN,Couverture,Resume,Note */	
           /*
            $_POST['Auteur'];
        	$_POST['Titre'];
        	$_POST['Editeur'];
        	$_POST['Annee_de_parution'];
        	$_POST['Langue'];
        	$_POST['Nombre_de_pages'];
        	$_POST['Sous-titre'];
        	$_POST['ISBN'];
        	$_POST['Couverture'];
        	$_POST['Resume'];
        	$_POST['Note'];
        	*/
        	
        	/* On vérifie que ls champs obligatoires ont bien été remplis : L'auteur, l'editeur, et le titre */
        	
        		if (($_POST['Auteur']=="")||($_POST['Editeur']=="")||($_POST['Titre']=="")||($_POST['ISBN']==""))
        		{
        			if($_POST['Auteur']=="") echo "Veuillez saisir le nom de l'auteur <BR>\n" ;
        			if($_POST['Editeur']=="") echo "Veuillez saisir le nom de l'editeur <BR>\n" ;
        			if($_POST['Titre']=="") echo "Veuillez saisir le titre <BR>\n" ;
        			if($_POST['ISBN']=="") echo "Veuillez saisir le ISBN <BR>\n" ;
        		}
        		
        		
        		
        		else
        		{
        			$_POST['ISBN']=(int)$_POST['ISBN'];
        			if ($_POST['ISBN']<1)
        				{
        					echo "ISBN incorrect";
        				}
        			else
        			{
        				?>
        				<p> Récapitulatif des informations saisies </br>
        				</br>
        				Auteur : <?php echo htmlspecialchars($_POST['Auteur']); ?> </br>
        				Titre :<?php echo htmlspecialchars($_POST['Titre']); ?> </br>
        				Editeur : <?php echo htmlspecialchars($_POST['Editeur']); ?> </br>
        				<?php
        				if (!($_POST['Annee_de_parution']==""))
        				{
        					$_POST['Annee_de_parution']=(int)$_POST['Annee_de_parution'];
        					if ( ($_POST['Annee_de_parution']>2011) || ($_POST['Annee_de_parution']<1000) )
        					{
        						echo "mauvaise annee de parution"; ?> </BR> <?php
        					}
        					else
        					{
        						?>
        						Annee de parution : <?php echo htmlspecialchars($_POST['Annee_de_parution']); ?> </br>
        						<?php
        					} 
        				}
        				if (!($_POST['Langue']==""))
        				{
        					?>
        					Langue : <?php echo htmlspecialchars($_POST['Langue']); ?> </br>
        					<?php
        				}
        				if (!($_POST['Nombre_de_pages']==""))
        				{
        					$_POST['Nombre_de_pages']=(int)$_POST['Nombre_de_pages'];
        					if ($_POST['Nombre_de_pages']<1)
        					{
        						echo "vous n'avez pas rentrer le bon nombre de pages"; ?> </br> <?php
        					}
        					else
        					{
        						?>
        						Nombre de pages : <?php echo htmlspecialchars($_POST['Nombre_de_pages']); ?> </br> <?php
        					}
        					if (!($_POST['Nombre_de_pages']==""))
        					{
        						?>
        						Sous-titre : <?php echo htmlspecialchars($_POST['Sous-titre']); ?> </br> <?php
        					}
        				}
        				?>
        				
        				ISBN : <?php echo htmlspecialchars($_POST['ISBN']); ?> </br> <?php
        					
        				if (!($_POST['Resume']==""))
        					{
        					?>
        					Resume : <?php echo htmlspecialchars($_POST['Resume']); ?> </br> <?php
        					}
        					
        				if (!($_POST['Note']==""))
        				{
        					$_POST['Note']=(int)$_POST['Note'];
        					if ($_POST['Note']>20||$_POST['Note']<0)
        					{
        						?>
        						<p> La note doit etre comprise entre 0 et 20 ! </p>
        						<?php
        					}
        					else
        					{
        					?>
        					Note : <?php echo htmlspecialchars($_POST['Note']); ?> </br> <?php
        					}
        				}
        				
        					try
        					{
        						$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        						$bdd = new PDO('mysql:host=localhost;dbname=bibliotheque', 'root', '', $pdo_options);
        						
        						$req = $bdd->prepare('INSERT INTO livres(Titre,Auteur,Editeur,Annee_de_parution,Langue,Nombre_de_pages,Sous_titre,ISBN,Couverture,Resume,Note) 
        						VALUES(:Titre, :Auteur, :Editeur, :Annee_de_parution, :Langue, :Nombre_de_pages, :Sous_titre, :ISBN, :Couverture,  :Resume, :Note )');
        						$req->execute(array(
        							'Titre' => $_POST['Titre'],
        							'Auteur' => $_POST['Auteur'],
        							'Editeur' => $_POST['Editeur'],
        							'Annee_de_parution' => $_POST['Annee_de_parution'],
        							'Langue' => $_POST['Langue'],
        							'Nombre_de_pages' => $_POST['Nombre_de_pages'],
        							'Sous_titre' => $_POST['Sous-titre'],
        							'ISBN' =>$_POST['ISBN'],
        							'Couverture' => $_FILES['Photo_livre']['name'],
        							'Resume' => $_POST['Resume'],
        							'Note' => $_POST['Note']
        							));
        
        						?> 
        						Le livre a bien été ajouté ! </br> <?php
        					}
        					catch(Exception $e)
        					{
        						die('Erreur : '.$e->getMessage());
        					}
        					
        
        			}		
        		} 
           ?>
           </p>
           </body>
        </html>
        
        • Partager sur Facebook
        • Partager sur Twitter
          28 mai 2011 à 13:08:16

          Hé bien revérifie que t'as bien une colonne Nombre_de_pages dans ta table livres, parce que l'erreur est très claire...
          • Partager sur Facebook
          • Partager sur Twitter
            28 mai 2011 à 13:10:26

            Justement, j'ai vérifié, c'est bien ça le problème :)
            • Partager sur Facebook
            • Partager sur Twitter
              28 mai 2011 à 13:26:45

              C'est pour ça que je mets REvérifie.

              • Partager sur Facebook
              • Partager sur Twitter
                29 mai 2011 à 11:06:21

                Bon, l'erreur reste un mystère pour le moment...
                Je vais essayé de changer le nom :s on sait jamais
                • Partager sur Facebook
                • Partager sur Twitter

                problème requête sql

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown