Votre question

[PHP] Faire une double insertion hors d'un post

Tags :
  • Select
  • Programmation
Dernière réponse : dans Programmation
25 Septembre 2008 16:54:32

Bonjour,

J'ai un champ select avec une valeur que j'insère dans une table sql... Cepedant j'aimerais que l'option de ce select fasse 2 entrée dans ma table...

Exemple:

<select name="test">
<option value="exemple">1</option>
</select>

donc je récupère exemple que j'insère dans ma table mais je voudrais que par rapport au choix des options insérer une autre entrer dans ma table...

Donc comment créer deux valeur d'un select?
Merci d'avance!

Autres pages sur : php double insertion post

25 Septembre 2008 17:10:57

Salut,

Je n'ai pas compris grand chose à ton problème...

Tu as un formulaire avec un select avec plusieurs options ? Et tu veux qu'en fonction de l'option qui a été choisie il y en une insertion différente dans la base de donnée c'est ca ?

Donc tu as ton formulaire (avec deux choix):
<form action="tapage.php" method="POST">
<select name="test">
<option value="choix1">1</option>
<option value="choix2">1</option>
</select>
....
</form>

Après dans la page "tapage.php" (pour reprendre l'exemple) tu fais simplement un $_POST['test'] que tu met dans une variable. Ensuite tu test cette variable ... si elle est égale à "choix1" tu fais une requête sql sinon tu fais l'autre.

J'espère avoir répondu à ton problème mais j'ai du mal à saisir exactement ce que tu veux.

25 Septembre 2008 17:15:30

Bonjour,

Non ce n'est pas une simple insertion que je veux faire...

Autre exemple:

Choisissez un pays:

<select name="pays">
<option value="Belgique">Belgique</option>
<option value="France">France</option>
</select>

Bon j'insère le post pays dans la base de donnée pas de problème, mais se que je voudrais c'est que en fonction du pays il insère l'adresse du mini drepeau dans la base de données en meme temps que le choix du pays!
Contenus similaires
25 Septembre 2008 17:18:59

Bah il faut simplement faire un second insert dans lequel tu donne l'adresse du drapeau (le plus simple étant que le drapeau est le meme nom que la valeur de l'option ... par exemple France.jpeg)

Comme ca dans l'insert tu met un truc du genre : drapeau=$_POST['pays'].".jpeg"

Si tu ne veux pas mettre le meme nom il faut dans ce cas la tester la valeur de $_post['pays'] et en fonction mettre le bon nom du drapeau.
25 Septembre 2008 17:22:08

Oui mais se que je veux faire c'est 2 insertion le post['pays'] et le drapeau!
25 Septembre 2008 17:30:18

Si c'est dans la meme table du fais :

INSERT INTO Table_Pays (nom, drapeau)
VALUES ($_POST['pays'], $_POST['pays']."jpeg");

Si c'est deux tables différentes tu le fais en 2 inserts.
25 Septembre 2008 17:36:03

Ta valeur de drapeau, tu la récupères d'où exactement ? Tu as une base spécifique qui à chaque pays associe une image de drapeau ?
25 Septembre 2008 17:57:23

J'ai un dossier sur le ftp avec les différent drapeau, donc j'insère le lien direct des drapeaux dans la table!
25 Septembre 2008 18:44:24

Donc en fait, tu veux insèrer plusieurs valeurs dans un même enregistrement (ou tuple) ?
26 Septembre 2008 13:10:45

C'est bon j'ai trouvé...

J'ai fais:

$pays = $_POST['pays'];
$flag = "http://lesite.com/image/flag/$pays.gif";

Et j'ai nommé mais image par la valeur de l'option du select.
Merci :p 
27 Septembre 2008 16:21:47

aucune vérification ... bof bof ...
28 Septembre 2008 17:11:28

Pourquoi faire une vérification sur un select, vu que la valeur de l'option et prédéfinie...
28 Septembre 2008 17:51:08

Parce que l'on peut contourner le formulaire en créant par exemple directement un script qui va faire la meme chose que si le formulaire avait été validé. Il est donc possible grâce à cela de faire passer sa propre valeur dans $_POST['pays']. Et avec cela il est possible de faire s'exécuter des requêtes sql sur la base et donc de faire ce que l'on veut avec.
10 Octobre 2008 17:17:48

Bonjour

Je rebondis sur ce post, car je fait un livre d'or et j'aurais aimé faire la meme chose, sauf qu'en suivant les différentes propositions, rien ne fonctionne.
pour plus d'explications, j'ai eu liste déroulante avec les noms de pays, la valeur s'enregistre dans un champ,

<select class="select" name="pays">
<option value="fr">France</option>
</select>

mais dans mon formulaire j'ai un champ caché qui me permet d'insérer le chemin de l'image,

<input type="hidden" name="drap" value="<?php echo "images/flags/".$_POST['pays'].".png";?>">
mais je ne récupere pas la valeur de £_POST['pays']
et j'aurais aimé faire qu'en sélectionnant une valeur dans la liste récupérer cette valeur pour avaoir le non de l'image complet par rapport à cette sélection.

J'ai essayé dans tous les sens, sans résultat, merci

10 Octobre 2008 17:38:06

Bon vu que j'y suis arrivé je vais te dire comment j'ai fais:

Donc tu récupère le $_POST['pays'] que tu insère dans ta table sql
Pour le drapeau tu nomme le drapeau qui se trouve sur ton ftp "fr.gif"
Ensuite dans ta page qui rècupère les infos tu fais:

$pays = htmlspecialchars($_POST['pays']);
$drapeau = "http://tonsite/images/drapeau/$pays.gif";

Ensuite te reste plus qu'a insérer dans la table!
10 Octobre 2008 18:46:03

Merci Allstar27

cela m'a donné une bonne piste.

mais je dois avoir un code pas pareil que le votre
en fait pour expliquer cela peut servir à d'autres j'ai ma liste
<select class="select" name="pays" id="pays">
<option selected="selected">-- Faite votre choix --</option>
<option value="be">Belgique</option>
<option value="es">Espagne</option>
<option value="fr">France</option>
<option value="ie">Irlande</option>
<option value="it">Italie</option>
<option value="jp">Japon</option>
</select>
et j'utiliser un champ caché pour le chemin de l'image
<input type="hidden" name="drap" value="<?php echo "images/flags/";?>">

mais en fait je me suis apercu que ce champ n'était d'aucune utilité

donc pour l'affichage dans mon tableau j'ai fait ceci

<?php
$pays = $row_Rsmess['pays'];
$drapeau = "<img src='images/flags/$pays.png'>";
echo $drapeau;
?>
ainsi quand je sélectionne dans la liste belgique, j'ai le drapeau correspond qui s'affiche par rapport à mon champ pays qui enregistre que 'be' .

Mais bon cela fonctionne bien d'après mes nombreux essai
merci du coup de main.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS