insertion formulaire dynamique

Petit nouveau ! | 9 Messages

19 mai 2011, 19:47

bonjour tout le monde!
je travaille avec un formulaire dynamique :
comment faire une requête sql insert sans connaitre les nons de colonne
$sql1 = "INSERT INTO utilisation_individuelle(les nons de toute les colones)VALUES 
(";
for($i=0;$i<=34;$i++)
{
$sql1.= "'$reponse_utilisateur[$i]',";
}
$sql1.= "'$reponse_utilisateur[35]')";
mercii

ViPHP
xTG
ViPHP | 7331 Messages

19 mai 2011, 20:44

Le mieux est d'au lieu de construire la requête il faudrait construire deux variables. L'une pour "les nons de toute les colones" et l'autre pour les "values".
Ainsi tu n'as plus qu'à reprendre la variable de la requête et à concaténer tes deux variables obtenues dedans.

Attention cependant... Si ton formulaire ne présente pas des champs qui sont obligatoires dans la table la requête générera une erreur.

Eléphanteau du PHP | 15 Messages

26 mai 2011, 18:33

Bonjour ,
alors je crois que j'ai compris ce que tu veux faire mais malheureusement tu ne peux pas raccourcir autant le processus sinon ton script va planter une fois sur 5 .

1 il faut que tu récupères les variables du form
2 il faut que tu échappes les caractères non valide avec mysql_real_escape() par exemple
(et que tu mettes le tout en minuscule ou maj selon les champs de ta table et que tu supprimes les espaces qu'il pourrait y avoir avant et après avec trim() par ex )
3 il faut que tu vérifies si les variables une fois traité correspondent aux noms des champs de la table et que tu traites celles qui ne correspondraient pas (par ex retour au form avec un message d'erreur )
4 pour les $reponse_utilisateur il faut que tu échappes les caractères non valide avec mysql_real_escape()
5 il faut que tu vérifies que le nombre de "nom de colonne" correspondent au nombre de VALUES

et une fois que tu as fait tous ça tu peux commencer la construction de ta requête .
Agence de communication et de formation aux outils du web marketing http://www.linesoft.fr
Plateforme d'emailing - création de newsletter - gestion de campagnes d' email marketing http://www.emailing-express10.fr
Ressources pour webmaster gratuites ,icones,fichiers vectoriels,psd ... http://www.ressource-web.fr

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

26 mai 2011, 18:58

En fait, tu peux simplement insérer tes valeurs sans spécifier le nom des colonnes à deux conditions :
- respecter le nombre de champ de ta table
- respecter l'ordre des champs de ta table
INSERT INTO ta_table VALUES (tes_valeurs)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...