formulaire avec plusieurs réponses possibles

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : formulaire avec plusieurs réponses possibles

par ouckileou » 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"

par ladybuuug » 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

par ouckileou » 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

par ladybuug » 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());

par ouckileou » 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

par ladybuug » 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

par ouckileou » 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

par ladybuug » 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.

par ladybuug » 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 :?

par ouckileou » 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 ?

par ladybuuug » 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 :'(

par ouckileou » 26 août 2005, 15:29

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

par ladybuuug » 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]

par ouckileou » 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...

par ladybuug » 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 :--(