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

Berthe067
Invité n'ayant pas de compte PHPfrance

10 mars 2016, 12:36

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'

Berthe067
Invité n'ayant pas de compte PHPfrance

10 mars 2016, 12:39

votre aide me fera beaucoup de bien !!!!!!!!!!! :D

Eléphant du PHP | 243 Messages

10 mars 2016, 12:52

Bonjour,
Est-ce que ta table maintenance contient une colonne idMain ?
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Berthe067
Invité n'ayant pas de compte PHPfrance

10 mars 2016, 14:58

oui ma table maintenance a pour id : idMain

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

10 mars 2016, 15:03

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, ...)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Berthe067
Invité n'ayant pas de compte PHPfrance

10 mars 2016, 15:34

oui Biensur la connexion passe bien avec la table maintenance
j'ignore s'il faille plutôt élliminer cet id de ma table

Berthe067
Invité n'ayant pas de compte PHPfrance

10 mars 2016, 15:59

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
}

?>

Eléphant du PHP | 243 Messages

10 mars 2016, 20:05

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);
}
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini