Bonjour à tous,

Voici le code ma page index.php (juste le body) :

<body>
          <div id="all">     
               <div id="content">
                    <div id="header">                    
                         <div id="logo"><img src="../images/logo.png" alt="Logo" title="Logo"></img></div>                         
                    </div>

                    <div id="slider"></div>

                    <div id="contenu">
                         <?php
                              include('menu.php');     
                         ?>          
                         <div id="admin">

                                   <div align="center">
                              <form method="POST" action="add.php"/>     

                                   Choisir votre classe :
                                   <br/>                              
                                   <select name='choix'> 
                                        <?php 
                                             require "config.php";
                                             mysql_connect(DB_HOST, DB_LOGIN, DB_PASS);
                                             mysql_select_db(DB_BDD);
                                             $req = mysql_query("SELECT nomClasse FROM classe"); 
                                             while($ligne = mysql_fetch_array($req)) 
                                             { 
                                                  echo "<option value=".$ligne'idClasse'].">".$ligne'nomClasse']."</option>"; 
                                             } 
                                        ?> 
                                   </select>                              
                                   <br/>

                                   Choisir votre catégorie :
                                   <br/>
                                   <select name='choix'> 
                                        <?php 
                                             require "config.php";
                                             mysql_connect(DB_HOST, DB_LOGIN, DB_PASS);
                                             mysql_select_db(DB_BDD);
                                             $req = mysql_query("SELECT nomCategorie FROM categorie"); 
                                             while($ligne = mysql_fetch_array($req)) 
                                             { 
                                                  echo "<option value=".$ligne'idCategorie'].">".$ligne'nomCategorie']."</option>"; 
                                             } 
                                        ?> 
                                   </select>          

                                   <br/>
                                   <br/>

                                   Titre :
                                   <br/>
                                   <input type="text" name="titre"/>
                                   <br/>
                                   <br/>
                                   Contenu : 
                                   <br/>

                                   <textarea name="contenu"style="width:400px; height:300px;"></textarea>
                                   <p align="center">
                                   <br/>
                                   <br/>
                                   <input type="submit" value="Envoyer"/>
                              </form>                                                            
                                   </p>
                                   <p align="center"><br/>
                                   <a href="../index.php">Retour</a></p>          
                    </div>                         
                    </div>
                    <div id="footer">
                         © Ecolefredericmistral.fr - 2011 - Tous droits réservés.
                    </div>
               </div>
          </div>        
     </body>
</html>

J'ai deux liste déroulantes ou je récupère mes données dans la bdd.
Le problème c'est que lorsque j'envoie la news voilà l'erreur :

Erreur SQL !
INSERT INTO utiliser (titre, contenu) VALUES ('Yop', 'Yop')
Duplicate entry '0-0' for key 'PRIMARY'

Ici la page add.php :

<?php
    require "config.php";
    mysql_connect(DB_HOST, DB_LOGIN, DB_PASS);
    mysql_select_db(DB_BDD);
    extract($_POST);
    $sql= "INSERT INTO utiliser (titre, contenu) VALUES ('".addslashes($titre)."', '".addslashes($contenu)."')";
    $req = mysql_query ($sql) or die ('Erreur SQL ! <br/>' .$sql . '<br/>' .mysql_error());    
    header("Location: ../index.php");
?>

Ici mes relations (crée pour l'occasion sur Access 2010) :
Relations
Dans cette table rien n'est en auto_increment, et c'est surement la que viens le souci. Mais c'est moi qui rentre les données directement dans la base de données (pour les classes il y en a 6, et pour les catégories (il y a Vie de classe, photos etc...)

Et pour finir j'ai fais un var_dump($_POST) dans mon add.php et voilà le résultat :

array(3) { "choix"]=> string(0) "" "titre"]=> string(3) "yop" "contenu"]=> string(10) "

Je ne trouve pas la solution, alors si quelqu'un trouve merci beaucoup :)

2 réponses


barry
Réponse acceptée

Bonjour Skyounet,

Vues les relations, la table utiliser possède un couple de clés primaire. Donc pour l'intégrité des données, on ne peut pas dupliquer ce couple.

Dans ton cas, tu assailles d'insérer une ligne dont la clé primaire (idCateg, idClass) existe déjà. Car figure toi, qu'en fesant

INSERT INTO utiliser (titre, contenu) VALUES ('', '');

tu n'insère que le titre et le contenu. Dans ce cas, idCateg et idClass sont à null donc 0 pour le type int dans les db.

Pour résoudre ton problème, il faut que t'essaies d'insérer idCateg, idClass, titre et contenu et veiller à ne pas dupliquer le couple de clé primaire.

INSERT INTO utiliser (idCateg, idClass, titre, contenu) VALUES ('', '', '', '');
Skyounet
Auteur

Merci, j'avais réussi a trouver un semblant de réponse :)
Résolu!