Page 1 sur 1

Erreur SQL !INSERT INTO

Posté : 17 mars 2006, 03:08
par alexdarcy
Ben voilà j'ai crée un formulaire pour ajouter des enregistrements dans ma table.
Voici le script add.php:
<?php 
// On commence par récupérer les champs 
if(isset($_POST['nom']))      $nom=$_POST['nom'];
else      $nom="";

if(isset($_POST['adresse']))      $adresse=$_POST['adresse'];
else      $adresse="";

if(isset($_POST['telephone']))      $telephone=$_POST['telephone'];
else      $telephone="";

if(isset($_POST['fax']))      $fax=$_POST['fax'];
else      $fax="";

if(isset($_POST['mail']))      $mail=$_POST['mail'];
else      $mail="";

if(isset($_POST['agent1']))      $agent1=$_POST['agent1'];
else      $agent1="";

if(isset($_POST['mail1']))      $mail1=$_POST['mail1'];
else      $mail1="";

if(isset($_POST['agent2']))      $agent2=$_POST['agent2'];
else      $agent2="";

if(isset($_POST['mail2']))      $mail2=$_POST['mail2'];
else      $mail2="";

if(isset($_POST['agent3']))      $agent3=$_POST['agent3'];
else      $agent3="";

if(isset($_POST['mail3']))      $mail3=$_POST['mail3'];
else      $mail3="";


// Aucun champ n'est vide, on peut enregistrer dans la table 
else      
    { 
       // connexion à la base
$db = mysql_connect('localhost', 'agence', 'xxxx')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('agences',$db)  or die('Erreur de selection '.mysql_error()); 
     
    // on écrit la requête sql 
    $sql = "INSERT INTO agences_tbl(nom, adresse, telephone,fax, mail, agent1, mail1, agent2, mail2, agent3, 

mail3) 

VALUES('','$nom','$adresse','$telephone','$fax','$mail','$agent1','$mail1','$agent2','$mail2','$agent3','$mail3')"; 
     
    // on insère les informations du formulaire dans la table 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

    // on affiche le résultat pour le visiteur 
    echo 'Vos infos on été ajoutées.'; 

    mysql_close();  // on ferme la connexion 
    }  
?> 
et une fois les infos dans le formulaire et après avoir valider, je reçois ce message :
Erreur SQL !INSERT INTO agences_tbl(nom, adresse, telephone,fax, mail, agent1, mail1, agent2, mail2, agent3, mail3) VALUES('','Agence AAC','10, avenue Georges V 75008 Paris','01 53 67 79 30','01 53 67 79 31','[email protected]','Patrick GOAVEC','','','','','')
Column count doesn't match value count at row 1


... et je sais pas pourquoi !!
:oops:

Posté : 17 mars 2006, 10:22
par mario
Regarde ton INSERT.
Tu souhaites insérer 12 valeurs dans 11 champs.
Il doit manquer le champ id dans ceux que tu énumères

Posté : 17 mars 2006, 11:00
par Truc
Il doit manquer le champ id dans ceux que tu énumères
Ou l'inverse, enlever dans les "values" de la requete la 1ère insertion qui correspond à l'id (s'il est auto-incrémenté).
VALUES('$nom','$adresse',......... 
[/php]

Posté : 17 mars 2006, 16:03
par alexdarcy
:lol: en effet il manquait ce sacré ID dans la requête sql !!!!

Maintenant je vais essayer de dirigier les données enregistrées dans ma table via un long Menu-liens dans une page ...
J'espère que ca va aller :cry:

Merci
:lol:

Posté : 17 mars 2006, 16:20
par alexdarcy
J'avais mis "résolu" mais g un nv petit probleme de lien pour le retour après avoir valider le formulaire.
Voici le bout de script add.php :
// on affiche le résultat pour le visiteur 
    echo '<a href="http://www.moi.com/agences/ad_agents.htm">'Vos infos on été ajoutées.'</a>;
En fait j'aimerai pouvoir cliquer sur " Vos infos on été ajoutées " pour revenir vers le formulaire pour continuer les enregistrements.

... et voici l'erreur que je reçois :

Parse error: parse error, expecting `','' or `';'' in /var/www/moi/agences/add.php on line 52

:oops:

Posté : 17 mars 2006, 16:29
par alexdarcy
oups c'est résolu ! question de point virgule :cry:

:lol: