Page 1 sur 1

insertion d'une liste déroulante mysql dans une table

Posté : 10 mars 2016, 12:36
par Berthe067
bonjour a tous
je suis débutante en php et je souhaite récupérer un élément d'une liste déroulante pour en faire un submit dans une table
et ca me renvoie cette erreur :

Erreur SQL !INSERT INTO maintenance(idMain, service, libelle, description, equipement, intervenant, debut, fin) VALUES('','','Qualite','','','','', '')
Unknown column 'idMain' in 'field list'

Re: insertion d'une liste déroulante mysql dans une table

Posté : 10 mars 2016, 12:39
par Berthe067
votre aide me fera beaucoup de bien !!!!!!!!!!! :D

Re: insertion d'une liste déroulante mysql dans une table

Posté : 10 mars 2016, 12:52
par Ascla
Bonjour,
Est-ce que ta table maintenance contient une colonne idMain ?

Re: insertion d'une liste déroulante mysql dans une table

Posté : 10 mars 2016, 14:58
par Berthe067
oui ma table maintenance a pour id : idMain

Re: insertion d'une liste déroulante mysql dans une table

Posté : 10 mars 2016, 15:03
par Ryle
Bonjour,

D'après le message d'erreur "Unknown column 'idMain' in 'field list'", MySQL t'informe que ta table maintenance n'a pas de colonne nommée idMain.
Est-ce que tu es connectée à la bonne base, est-ce que le nom de la colonne est bien idMain (et pas id_main ou idMaintenance, ...)

Re: insertion d'une liste déroulante mysql dans une table

Posté : 10 mars 2016, 15:34
par Berthe067
oui Biensur la connexion passe bien avec la table maintenance
j'ignore s'il faille plutôt élliminer cet id de ma table

Re: insertion d'une liste déroulante mysql dans une table

Posté : 10 mars 2016, 15:59
par Berthe067
les codes suivants sont d'une part le formulaire pour l'enrregistrement et le fichier savaMaint.php



<form action="saveMaint.php" method="post">
<!-- code pour liste déroulante à partir d'une base donnée-->
<h1>enregistrer une Maintenance</h1>

<p><label for = "servicel">Choisir le Service :</label>
<select name="servicel">
<?php
$db = mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('archipise',$db ) or die('Erreur de selection'.mysql_error);
$sql = "SELECT servicel FROM service";
$req = mysql_query ($sql) or die ("requete pas comprise");
while ($data= mysql_fetch_array ($req)){
echo '<option>'.$data["servicel"].'</option><br/ >';
}
//mysql_free_result ($req)
mysql_close();

?>
</select>

</p>
<p><label for = "Libelle">Libelle : </label><input type = "text" name = "Libelle" id = "Libelle" /></p>
<p><label for = "Description">Description : </label><input type = "text" name = "Description" id = "Description" /></p>
<p><label for = "Equipement">Equipement : </label><input type = "text" name = "Equipement" id = "Equipement" /></p>
<p><label for = "Intervenant">Intervenant : </label><input type = "Intervenant" name = "Intervenant" id = "Intervenant" /></p>
<p><label for = "Debut">Debut : </label><input type = "date" name = "Debut" id = "Debut" /></p>
<p><label for = "Fin">Fin : </label><input type = "date" name = "Fin" id = "Fin" /></p>
<p><input type = "submit" name = "envoyer" value = "Envoyer" id = "valider" /></p>

</form>










<?php
// On commence par récupérer les champs
if (isset($_POST['service'])) {
$service = $_POST['service'];
} else {
$service = "";
}

if (isset($_POST['libelle'])) {
$libelle = $_POST['libelle'];
} else {
$libelle = "";
}

if (isset($_POST['description'])) {
$description = $_POST['description'];
} else {
$description = "";
}
if (isset($_POST['equipement'])) {
$equipement = $_POST['equipement'];
} else {
$equipement = "";
}
if (isset($_POST['intervenant'])) {
$intervenant = $_POST['intervenant'];
} else {
$intervenant = "";
}
if (isset($_POST['debut'])) {
$debut = $_POST['debut'];
} else {
$debut = "";
}
if (isset($_POST['fin'])) {
$fin = $_POST['fin'];
} else {
$fin = "";
}


if(isset($_POST['envoyer'])){


// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());

// sélection de la base
mysql_select_db('archive',$db) or die('Erreur de selection '.mysql_error());

// on écrit la requête sql
$sql = "INSERT INTO maintenance(idMain, servicel, libelle, description, equipement, intervenant, debut, fin)
VALUES('','$servicel','$libelle','$description','$equipement','$intervenant','$debut', '$fin')";
//$sql1 = "SELECT * FROM maintenance";
$result = mysql_query($sql);

// 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 655997876
echo 'Vos infos on été ajoutées.';

if (!$result) {
echo "Lecture impossible";
} else {
$nbcol = mysql_num_fields($result);
$nbmaint = mysql_num_rows($result);
echo "<h3> la liste des maintenances est :</h3>";
echo "<h4> Il y a $nbmaint utilisateur </h4>";
echo "<table border=\"1\"><tbody>";
echo "<tr><td>idMain</td> <td>service</td> <td>libelle</td> <td>description</td> <td>equipement</td> <td>intervenant</td> <td>debut</td> <td>fin</td></tr>";
while ($ligne = mysql_fetch_array($result, MYSQL_NUM)) {
echo "<tr>";
foreach ($ligne as $valeur) {
echo "<td> $valeur </td>";
}
// echo "</tr>";
}
echo "</tbody></table>";
}
//mysql_free_result($result);

mysql_close(); // on ferme la connexion
}

?>

Re: insertion d'une liste déroulante mysql dans une table

Posté : 10 mars 2016, 20:05
par Ascla
L'erreur que tu nous as indiqué explique qu'elle cherche un colonne idMain mais ne la trouve pas.
Il faudrait vérifier tout d'abord si tu ne t'es pas trompée au caractère près.
Ensuite comme il a été dit, que tu sois bien connectée à la bonne base.
Si tous ces points sont correctes, essaye le code suivant et retourne nous le résultat.
$query = "SELECT idMain FROM maintenance";
$result = mysql_query($query);
if (!$result) {
    $message  = 'Requête invalide : ' . mysql_error() . "\n";
    $message .= 'Requête complète : ' . $query;
    die($message);
}