Aller au contenu

formulaire universel


SanchoDellaVega

Sujets conseillés

Bonjour à tous,

Je suis à la recherche d'un bout de code qui me permettrait de gérer automatiquement l'insertion d'un formulaire en base de données.

Pour l'instant, je me suis fait des fonctions qui vérifient si des champs sont obligatoires et s'ils sont remplis avec les données que l'on attend. Pour la troisième étape, j'aurais bien voulu réussir à faire une sorte de requête INSERT universelle. Avez-vous une idée ? quelqu'un a déjà fait ce genre de chose ?

merci.

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir SanchoDellaVega,

je ne sais pas exactement ce que tu cherches, mais si tu es en validation de formulaire, on pourrait imaginer faire une boucle sur le tableau des champs saisis ( $_POST ou $_GET ), pour construire un INSERT.

Ce que tu sembles rechercher ressemble peut-être à phpmyadmin, une saisie et insertion universelle dans quelque fichier que ce soit ?

Lien vers le commentaire
Partager sur d’autres sites

En fait, c'est ça, je cherche un truc qui ferait :

contrôle des champs obligatoire

si ok alors :

vérification de la validité des données saisies

si ok alors

construction d'une requête insert

le tout serait utilisé en appelant simplement les trois fonctions les uns à la suite des autres dans le script, sans rien faire d'autre.

pour l'instant, j'ai fait les deux premières étapes, la troisième me pose plus de difficultés.

Mais je crois que tu m'as mis sur la voie, pour automatiser le truc, il faudrait en fait que les champs de ma base de données ait le même nom que les champs de mon formulaire.

Je vous tiens au courant.

@++

Lien vers le commentaire
Partager sur d’autres sites

Je te conseille vivement de faire un insert, puis un update pour faire ton Insert.

Ton premier Insert insérant juste une entrée, et tu place les données dedans avec un fonction update +/- universelle, j'en ai une grossière qui ressemble à ça, en paramètre le nom de la table, en second paramètre le tableau associatif colonnes / valeurs, qui suppose tout de même qu'il y ait une colonne "ID", mais ça adapte le à ta sauce en ajoutant des paramètres si le principe te plait pas.

Tu peux taper dans les classes du framework Zend, ma classe Mysql s'en est largement inspiré à défaut de l'étendre (une mine pour la conception d'une manière générale).

http://framework.zend.com/manual/fr/zend.d...g.insert-update

	public function updateById($table,$assoc){
$query = "UPDATE `".strtolower($table)."` SET ";
$i = 0;
foreach($assoc as $key => $value){
$value = mysql_real_escape_string($value);
$key = mysql_real_escape_string($key);
$i++;
if($key!="ID" && $key!="theAction")
$query .= "`".$key."`='".$value."'";
if($i!= sizeof($assoc) && $key!="ID" && $key!="theAction")
$query .= ",";
}
$query .= " WHERE `ID`='".mysql_real_escape_string($assoc["ID"])."'";
return mysql_query($query);
}

Le fait de faire insert/update t'évite surtout de multiplier les fonctions d'insertion, et d'avoir quelques méthodes updates plus globales.

Modifié par SStephane
Lien vers le commentaire
Partager sur d’autres sites

Une requête d'insertion universelle ? Pour ce faire il te suffit, comme indiqué dans le message précédent de procéder par système de requête dynamique comme on dit, en gros tu stockes dans un tableau les noms de colonnes de ta table avec les valeurs à insérer, puis tu as juste à générer ta requête en plaçant le début au dessus de la boucle et la fin en dessous de la boucle (l'intérieur servant donc à générer la liste d'insertion et l'insertion elle même).

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...