Erreur INSERT INTO !

Bonjour,
je ne vois pas l'erreur ! Pourtant le server me dis qu'as la ligne 6 il y as ceci :
Notice: Undefined variable: titre in D:\wamp\www\librydoc\admin\adnotices.php on line 6
"titre"(il me met l'erreur pour chaque $) Pourquoi ?

<?php       
mysql_connect("localhost", "librydoc","31p71h49" );//on se connecte à MySQL    
mysql_select_db("librydoc"); //On selectionne la base    
 //on commence par récupérer les valeurs des champs    
mysql_query("INSERT INTO notices (titre, auteur, dtp, editeur, collection, collation, isbn, ncol, nature, genre, genre2, prix, mcl, description)
VALUES ('','$titre','$auteur''$dtp','$editeur','$collection''$collation','$isbn','$ncol''$nature','$genre','$genre2''$prix','$mcl','$description')");  
mysql_close();// facultative, on ferme la connexion    
?>    

Merci.

4 réponses

  1. enlève '',
    ('$titre','$auteur''$dtp','$editeur','$collection''$collation','$isbn','$ncol''$nature','$genre','$genre2''$prix','$mcl','$description')");
    1. Toujours l'erreur !
    2. enlève '',
      ('$titre','$auteur''$dtp','$editeur','$collection''$collation','$isbn','$ncol''$nature','$genre','$genre2''$prix','$mcl','$description')");
    3. Idem voici le code
      <?php       
      mysql_connect("localhost", "librydoc","31p71h49" );//on se connecte à MySQL    
      mysql_select_db("librydoc"); //On selectionne la base    
       //on commence par récupérer les valeurs des champs    
      mysql_query("INSERT INTO notices VALUES($titre$auteur$dtp$editeur$collection$collation$isbn$ncol$nature$genre$genre2$prix$mcl$description)");  
      mysql_close();// facultative, on ferme la connexion    
      ?> 
    4. Notice: Undefined variable: titre in D:\wamp\www\librydoc\admin\adnotices.php on line 11

      Voici l'erreur retourné pour chaque valeur'titre, auteur....)
    5. tu ne t'es pas planté dans tes nom de variable dans ta base ?
      sur toutes les variables ça me semble quand même impossible !!!
      tu as bien une table au moins avec "notices" comme nom ?
  2. nan mais enlève que le 1er qui doit correspondre à un id unique de ta base, que tu as du mettre !

    <?php
    mysql_connect("localhost", "librydoc","31p71h49" );//on se connecte à MySQL
    mysql_select_db("librydoc"); //On selectionne la base
    //on commence par récupérer les valeurs des champs
    mysql_query("INSERT INTO notices (titre, auteur, dtp, editeur, collection, collation, isbn, ncol, nature, genre, genre2, prix, mcl, description)
    VALUES ('$titre','$auteur''$dtp','$editeur','$collection''$collation','$isbn','$ncol''$nature','$genre','$genre2''$prix','$mcl','$description')");
    mysql_close();// facultative, on ferme la connexion
    ?>

    ou ça

    <?php
    mysql_connect("localhost", "librydoc","31p71h49" );//on se connecte à MySQL
    mysql_select_db("librydoc"); //On selectionne la base
    //on commence par récupérer les valeurs des champs
    mysql_query("INSERT INTO notices VALUES ('', '$titre','$auteur''$dtp','$editeur','$collection''$collation','$isbn','$ncol''$nature','$genre','$genre2''$prix','$mcl','$description')");
    mysql_close();// facultative, on ferme la connexion
    ?>
    1. Bonjour

      La requête que tu avais écrite dans ton premier message était presque correcte, il n'y avait à corriger que la chaine vide dans VALUES qui ne correspond à aucun des champs déclarés .
      Le message d'erreur le disait : la variable $titre n'est pas définie. C'est une erreur PHP, pas une erreur mySQL.
      Il ne faut pas confondre les variables PHP et les noms des champs d'une table de base de données. Même si souvent on donne le même nom car c'est plus pratique.
      Dans ton cas, d'où vient la variable $titre, qui contient la valeur que tu veux donner au champ titre ? De nulle part, on ne voit pas avant de $titre=quelquechose. Donc cette variable est bien indéfinie comme le dit le message d'erreur.
      Si ces valeurs sont cesées venir d'un formulaire, tu devrais avoir (par exemple) :
      if (isset($_POST['titre'])) { // si c'est bien un envoi de formulaire 
        $titre=$_POST['titre']; 
        $auteur=$_POST['auteur']; 
        ... 
        // et seulement après, ta requête, quand toutes tes variables PHP sont définies. 
      mysql_connect("localhost", "librydoc","31p71h49" );//on se connecte à MySQL    
      mysql_select_db("librydoc"); //On selectionne la base    
       //on commence par récupérer les valeurs des champs    
      mysql_query("INSERT INTO notices (titre, auteur, dtp, editeur, collection, collation, isbn, ncol, nature, genre, genre2, prix, mcl, description)
      VALUES ('$titre','$auteur''$dtp','$editeur','$collection''$collation','$isbn','$ncol''$nature','$genre','$genre2''$prix','$mcl','$description')");  
      mysql_close();// facultative, on ferme la connexion    
      ?>    
      
      1. bonjour,

        attention à la ponctuation
        tu devrais prendre quelques cours...............................

        j'ai retravaillé ton code

        mais quelque chose m'interpelle tu travaille sur wamp
        je l'ai vu au dessus

        avec wamp tu dois créer une base de données
        je doute que tu l'es faite

        mysql_connect('localhost', 'librydoc','31p71h49');

        ici localhost ok après tu mets 'librydoc' si tu as installé wamp par default c'est 'root' et après 31p71..... ça le mot de passe QUE TU AS MI OK

        mysql_select_db('librydoc'); pour ici librydoc, c'est le nom de ta base de données
        ce n'est pas le nom d'un dossier ou voir d'un fichier, ça rien à voir

        ******************************
        <?php

        mysql_connect('localhost', 'root','31p71h49');

        mysql_select_db('librydoc');

        *************************************
        composition tu devrais avoir une base de nom "librydoc"
        tu as une table de nom "notices"
        et après tu dois avoir 14 colonnes
        ********************************************

        <?php   
        
        mysql_connect('localhost', 'librydoc','31p71h49');    
           
        mysql_select_db('librydoc');   
        
        mysql_query('insert into notices (titre, auteur, dtp, editeur, collection, collation, isbn, ncol, nature, genre, genre2, prix, mcl, description)  
        value ("'.$titre.'", "'.$auteur.'", "'.$dtp.'", "'.$editeur.'", "'.$collection.'", "'.$collation.'", "'.$isbn.'", "'.$ncol.'", "'.$nature."', "'.$genre.'", "'.$genre2.'", "'.$prix.'", "'.$mcl.'", "'.$description.'")');    
        mysql_close();      
        ?>      
        
        


        pour creer ta base de données ouvre ton navigateur pour aller sur internet
        et tu remplaces htpp:// MACHIN et tu écris localhost puis entrée
        après tu choisis PHPMYADMIN

        puis après si tu ne sais pas, tu sais quoi faire......................à plus

        Moi je plante et toi tu creuses !!!