bonjour,
j'ai essayé de faire un exemple pr voir comment ca marche le script suivant:
<?php
include ("connexion.php");
//Ce script enregistre automatiquement toutes les données provenant d'un formulaire
//dans une table $table en affectant la valeur du champ du formulaire au champ correspondant de la table
//Si on spécifie un id, il actualisera l'entrée donnée par l'id avec les données du formulaire
//Cela permet d'utiliser un seul script pour plusieurs tables et de simplifier ainsi les ajout/modification
//dans une base de donnée
//Note : si on souhaite utiliser des champs dans le formulaire qui ne sont pas présents dans la table, il faut les
//préfixer par "tmp_"
//Ex : on a un formulaire pour ajouter un message dans une table "forum"
//Ce formulaire contient les champ "nom", "date" et "message"
//avec les données respective "Bilbo", "2003-07-01" et "Bonjour."
//le script créera donc automatiquement la requête suivante et l'executera :
//"INSERT INTO forum (nom,date,message) VALUES (\"Bilbo\",\"2003-07-01\",\"Bonjour.\")"
//Initialisations
if($id){
$listChampsVal = "";
}else{
$listChamps = "";
$listVal = "";
}
//Parcours des champs du formulaire
reset($HTTP_POST_VARS);
while(list($cle,$val) = each($HTTP_POST_VARS)){
//Ajout du champ actuel dans la requête à exécuter
if(!ereg("^tmp_",$cle)){
if($id){
$listChampsVal .= ",$cle=\"$val\"";
}else{
$listChamps .= ",$cle";
$listVal .= ",\"$val\"";
}
}
if($id){
$listChampsVal = ereg_replace("^,","",$listChampsVal);
}else{
$listVal = ereg_replace("^,","",$listVal);
}
$table="forum";
//Execution de la requête (on doit être connecté à la base de donnée)
if($id){
$requete = "UPDATE $table SET $listChampsVal WHERE id=\"$id\"";
}else{
$requete = "INSERT INTO $table ($listChamps) VALUES ($listVal)";
}
mysql_query($requete) or die('erreur : '.mysql_error());
}
?>
j'ai creé la table suivante: forum, et un formulaire de autoform:
<form action="auto.php" method="post" name="autoajoutsup">
nom: <input type="text" name="nom">
date: <input name="date" type="text">
message: </textarea><input name="date" type="text" size="50" maxlength="255"><br>
<input name="envoyer" type="submit" value="envoyer">
</form>
mais je n'ai rien changé dans auto.php:
les erreur sont donc : il ne reconnai pas $id et $table ce qui est logique pour moi car je ne defini nul part ces variables; merci de votre aide