formulaire avec plusieurs réponses possibles

ladybuug
Invité n'ayant pas de compte PHPfrance

25 août 2005, 15:33

Je cherche toujours à savoir comment fait-on pour envoyer les informations que le membre à sélectionner sur la base de données. Je ne voudrais pas que cela affiche Array, mais le détail merci !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

25 août 2005, 16:15

ben tu as la solution dans l'exemple, la boucle parcoure le tableau et met le contenu de chaque cellule dans une variable

alors cette variable tu la met dans une requête SQL et tu l'insères

et là sans voir ta table je ne peux pas en dire en +

ladybuug
Invité n'ayant pas de compte PHPfrance

25 août 2005, 17:17

Mon DIEU !!! ça me saoule ce truc !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
c'est justement la requête pour mettre dans la base de données les informations précises !!! et PAS ARRAY je veux afficher dans talents, les trucs que le mec à choisis ex : "comédie" "chant" j'ai vu qu'il fallait mettre implode. mais je comprends rien, ça me fatigue j'arrive pas à trouver un scripts ou la solution :cry: :cry: :cry:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

25 août 2005, 17:21

du calme, et regarde :
implode -- Rassemble les éléments d'un tableau en une chaîne
donc si tu récupères un tableau de talents, et que tu fais un implode, tu n'as plus qu'à insérer la chaine créée :
$talents = Array('peinture', 'danse', 'chant');
$strTalents = implode(',',$talents); // va créer une chaine avec les talents séparés par des virgules
echo $strTalents;

$requete = "INSERT INTO table (talents) VALUES ('".$strTalents."')";

ladybuug
Invité n'ayant pas de compte PHPfrance

26 août 2005, 00:50

:cry:

J'ai essayé ce que tu m'as proposé donc ça m'affiche array :-(
j'ai essayé de mettre talents set ('comedie'....) et puis ce code là :

$talents_sql = implode(', ',$_POST['talents']);
$req = "UPDATE ".PREFIXE."membres (talents) VALUES ('$talents_sql')";

mais ça ne fait rien :(

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 août 2005, 08:46

avant d'attaquer la requête, vérifie d'abord ce qu'il y a dans tes variables
echo $_POST['talents'];
$talents_sql = implode(', ',$_POST['talents']); 
echo '<br />'.$talents_sql;
et dis nous ce que ça donne

ladybuuug
Invité n'ayant pas de compte PHPfrance

26 août 2005, 11:52

ça m'envoie : Comedie

vu que ça envoie "Comedie", je suis peut être pas obligée d'avoir un SET sur la BD non ?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 août 2005, 11:59

un SET si tu veux, mais un VARCHAR suffira

ladybuug
Invité n'ayant pas de compte PHPfrance

26 août 2005, 12:06

Et comment on fait donc pour envoyer Comedie sur la base de donnée ? j'essaie plein de requete mais ça marche pas si je mets un SET y'a rien qui se met dans la BD et si je mets pas de SET ça fait Array :--(

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 août 2005, 12:10

ben avec un INSERT, comme ça :
INSERT INTO table (talents) VALUES ('".$strTalents."')";
j'avais mal compris ton histoire de SET...

ladybuuug
Invité n'ayant pas de compte PHPfrance

26 août 2005, 15:27

Bouuuh ça fonctionne toujours pas !

j'ai mis dans la base de donnée : talents set ('Comedie', 'Chant')
J'ai mis ça :
$talents_sql = implode(', ',$_POST['talents']); 
$req = "INSERT INTO ".PREFIXE."membres (talents) VALUES ('".$strTalents."')";
echo "<br>$talents_sql<br>";
 
Quand y'a le talents set ça ne m'affiche toujours rien y compris si je rajoute ceci : "INSERT INTO ".PREFIXE."membres WHERE pseudo='$pseudom' (talents) VALUES ('".$strTalents."')";
et si je ne mets pas de talents set, ça m'affiche array
:cry: Non je vais pas désespérer :'(
[/php]

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 août 2005, 15:29

tu fais bien le mysql_query() ?
et tu n'as pas d'erreur MySQL ?

ladybuuug
Invité n'ayant pas de compte PHPfrance

26 août 2005, 15:36

J'ai déjà repéré une erreur de code avec $talents que j'ai réglé, j'ai rajouté mysql comme ça
$talents_sql = implode(', ',$_POST['talents']); 
mysql_query("INSERT INTO ".PREFIXE."membres (talents) VALUES ('".$talents_sql."')") or die (mysql_error());
echo "<br>$talents_sql<br>"; 
et comme ça
$talents_sql = implode(', ',$_POST['talents']); 
$req=mysql_query("INSERT INTO ".PREFIXE."membres (talents) VALUES ('".$talents_sql."')") or die (mysql_error());
echo "<br>$talents_sql<br>"; 
toujours rien :'(

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 août 2005, 15:40

Bon attend je suis un peu perdu là, récapitulons ce qui marche et ce qui ne marche pas

Tu récupères bien les variables du formulaire c'est sûr ?

si tu fais
echo '<pre>';
print_r($_POST['talents']);
echo '</pre>';
tu as bien les talents sélectionnés qui s'affiche ?

ladybuug
Invité n'ayant pas de compte PHPfrance

26 août 2005, 15:42

oui
j'ai fait ça : echo "<br>$talents_sql<br>"; et cela m'affiche bien Comedie, Chant etc.

Après si je veux l'envoyer sur la base de données, soit rien ne s'affiche soit j'ai Array :?