PHP : INSERT Table

bm1982 Messages postés 58 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 10 juin 2012 - 18 août 2011 à 01:53
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 20 août 2011 à 20:27
Bonsoir à tous ,
J'ai lu une superbe methode permettant de recuperer tous les éléments envoyés par un formulaire par POST...
foreach($_POST as $key => $value) {
$$key = $value;
}

Existe -il une solution afin d'inserer dans ma table des données aussi rapidement que
$sql=mysql_query(insert into Table(id, nom,prenom)values ('','$nom','$prenom');
Merci !!!

10 réponses

syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
18 août 2011 à 08:47
non
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
18 août 2011 à 10:10
Bonjour,

Si tu pouvais expliquer ton souci d'une façon plus claire...

tu parles de POST et de sql, mais avec du code qui ne parse pas, et sans expliquer le lien... C'est dur de comprendre ton souci.

Cordialement,
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
18 août 2011 à 10:30
Ben moi j'ai juste répondu à la question..
Existe -il une solution (bla bla)
..
Faciiiiiiile !!
S.
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
18 août 2011 à 10:38
:-)

en vrai, ta réponse n'est pas correcte, parce-que sa méthode n'inserre pas du tout rapidement les données (puisqu'elle ne les inserre pas)

La bonne méthode c'est :

$sql=mysql_query("insert into Table(id, nom,prenom)values ('','$nom','$prenom'") or die(mysql_error());
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
18 août 2011 à 11:30
Salut,

foreach($_POST as $key => $value) {
$$key = $value;
}

1. C'est totalement inutile, en quoi $toto est préférable à $_POST['toto'] ? En rien, et au contraire utiliser $_POST est porteur de sens : le contenu est la variable est fourni par l'utilisateur et est donc à utiliser avec précaution. Vouloir changer de variable te fait perdre ce sens et est donc à proscrire.
2. extract() fais ça en une seule instruction
3. C'est une faille de sécurité potentielle car il est alors possible de réécrire des variables initialisées avant. Je t'invite à lire la doc de PHP sur extract() qui indique également ce problème.

Conclusion : ta "superbe methode" est une grave erreur et ne dois être utilisée sous aucun prétexte.
0
bm1982 Messages postés 58 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 10 juin 2012
20 août 2011 à 15:49
Salut à tous ...
merci à l'interêt porté par chacun de vous à mon post.
Au fait la methode consitait , à recuperer mes envois depuis un formulaire POST.
Elle m'a l'air plus simple que la fameuse methode
$a=stripslashe($_post['postA'])...............$n=stripslashe($_post['postN']);
Je dit methode super car si jai 2000 objets envoyés ... vous êtes d'accord que c'est toute une accrobatie de recuperer ces 2000 objets.
Voir ici

[http://memoire-grise-liberee.fr.eu.org/PHP/code/variables_variable/ [ur]l=http://memoire-grise-liberee.fr.eu.org/PHP/code/variables_variable/]/url

Maintenant , je voudrais savoir s'il existait une methode afin d'inserer des données dans une table T1 par exple.
Je recupere mes données , existe t-il une methode pour recuperer tous les noms des champs d'une table afin d'inserer mes données ?
Merci !!!
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 août 2011 à 15:58
Salut,

La commande SQL DESCRIPT TABLE peut faire ça
En php, un SELECT * FROM ... LIMIT 1 te permet aussi de lister les colones.

Tu vas faire un site pas du tout sécurisé ! l'utilisateur pourra injecter ce qu'il veut dans tes tables SQL !
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
20 août 2011 à 17:59
Salut,

Au fait la methode consitait , à recuperer mes envois depuis un formulaire POST.

Oui on sais, nous l'avons compris dès le début.

Elle m'a l'air plus simple que la fameuse methode

Comme je te l'ai montré, il y a encore plus simple. Et soit dit en passant aucune de ces méthodes n'est bonne.

Je dit methode super car si jai 2000 objets envoyés ... vous êtes d'accord que c'est toute une accrobatie de recuperer ces 2000 objets.

Si tu en a autant c'est que tu as un gros problème, ton application est sans doute très mal conçue.

Voir ici

http://memoire-grise-liberee.fr.eu.org/PHP/code/variables_variable/

Cet article est un ramassis de choses à ne pas faire. Tu peux dès a présent l'oublier ainsi que son auteur.


Sinon pour compléter ce qu'a dit coucou747, je me permet d'ajouter quelque chose de spécifique à MySQL :
SELECT COLUMN_NAME, DATA_TYPE FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='nom de la table';

D'autres infos utiles sont accessibles via cette table.
0
bm1982 Messages postés 58 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 10 juin 2012
20 août 2011 à 18:47
""Je dit methode super car si jai 2000 objets envoyés ... vous êtes d'accord que c'est toute une accrobatie de recuperer ces 2000 objets.""

""Si tu en a autant c'est que tu as un gros problème, ton application est sans doute très mal conçue""

Je voulais un peu expliquer la chose ... Un formulaire peut contenir plusieurs éléments ...
Tu me dit que la methode du lien n'est pas bonne ... Or ce que tu m'en donne pas plus.
Quelle est la methode la plus bonne ?
Que faire si l'on a bocoup d'elements à recuperer...
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 août 2011 à 20:27
tu peux les récupérer avec un tableau :

for ($i = 0; $i < ... $i++){
$nom = $_POST["nom"][$i];
}

Pour faire ça, il faut avoir des champs input de ce type :


ça permet de boucler proprement sur tes valeurs.
0
Rejoignez-nous