formulaire avec plusieurs réponses possibles

ladybuug
Invité n'ayant pas de compte PHPfrance

26 août 2005, 15:47

petit détail rien ne s'affiche dans la base de données ! sur la page j'ai toujours comedie etC.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 août 2005, 15:54

et tu n'as aucune erreur SQL ?

met la colonne de la table qui doit recevoir les talents en VARCHAR pour voir

ladybuug
Invité n'ayant pas de compte PHPfrance

26 août 2005, 15:56

non j'ai pas d'erreurs mysql mais qd je mets la colonne en varchar j'ai justement ce Array

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 août 2005, 16:04

ceci t'affiche la liste des talents séparés par une virgule, et quand tu enregistres ça te met Array() ?? :shock:
$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>";

fais voir plus de code parceque là je ne comprends pas

ladybuug
Invité n'ayant pas de compte PHPfrance

30 août 2005, 14:25

Bah j'ai trouvé l'erreur, elle était pas bien difficile :

$textures_sql = implode(', ',$_POST['textures']); 
$lsql = mysql_query("UPDATE  ".PREFIXE."membres SET textures = '".$textures_sql."' WHERE pseudo='$pseudom' AND idm='$idm'") or die (mysql_error());

c'était pas insert into que je devais mettre mais update logique non ! :oops:
Merci en tout cas pour ta précieuse aide :)

Je voulais savoir autre chose, est il possible de faire une formule du genre
if talents =""
alors on n'update pas talents
else
$textures_sql = implode(', ',$_POST['textures']);
$lsql = mysql_query("UPDATE ".PREFIXE."membres SET textures = '".$textures_sql."' WHERE pseudo='$pseudom' AND idm='$idm'") or die (mysql_error());

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

30 août 2005, 14:30

oui bien sûr
attention le test d'égalité se fait avec un double égal : ==

mais je me permet de signaler que si tu stockes plusieurs données dans un même champ, c'est pas terrible niveau conception
et tes manipulations (tu le vois rien qu'avec le implode) sont plus difficiles

les talents sont-ils libres et l'utilisateur peut-il simplement les sélectionner par des propositions

si c'est la réponse 2, tu pourrais les mettre dans une table "Talents" et utiliser une jointure

ladybuuug
Invité n'ayant pas de compte PHPfrance

30 août 2005, 14:43

:? Ben je sais pas s'il y a un autre moyen plus simples. Pour l'instant ça fonctionne bien, et le seul hic c'est que je ne peux pas récupérer les infos sur les formulaires, je veux dire par exemple qd quelqu'un écrit un commentaires, je peux le récupérer sur son formulaire pour modifier sa fiche, mais là je ne peux pas faire

$talentsm=stripslashes($row[talents]);
et si talents==comedie alors cocher la case, comme il y a plusieurs infos dans la même variable. Donc c'est pour ça que je voudrais faire un code pour dire que si la personne ne veut pas modifier ses talents et bien on update pas la valeur talents. Par contre j'ai bien compris qu'il faut mettre deux égales, mais comment on formule la phrase ne pas udpater

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

30 août 2005, 14:52

mais comment on formule la phrase ne pas
udpater
si l'utilisateur veut mettre à jour, alors tu fais une requête UPDATE sur la colonne "talents"
sinon tu fais une requête UPDATE uniquement sur les autres colonnes

et après tu fais comme tu veux pour que l'utilisateur dise "je ne veux pas mettre à jour"