Formulaire php/base de données
Résolu
ln1285
-
ln1285 -
ln1285 -
Bonjour,
J'ai un problème lié à l'envoi des données d'un formulaire vers le script. En effet, je fais un sondage, et mes valeurs proviennent d'une base de données, mais je ne récupère aucune donnée dans mon script.
Merci d'avance.
?>
<FORM METHOD="post" ACTION="sondage.php">
<CENTER>
<TABLE> <TR>
<TD>
<?php
while ($row = mysql_fetch_assoc($ret))
{
echo $row["num_photo"];
echo" ";
?>
<INPUT TYPE="radio" NAME="elu" VALUE="<?php $row["num_photo"] ?>" >
<?php
echo $row["auteur"];
?> <br> <?php
}
?>
<INPUT TYPE="submit" VALUE="envoyer">
</TABLE></CENTER>
</FORM>
</body>
</html>
et le 2eme :
<body>
<?php
$elu=$_POST['elu']; print("<center>vous avez choisi $elu</center>");
/* Connexion à la table humour */
$hote = 'localhost';
$base = 'photo';
$user = 'root';
$pass = '';
$cnx = mysql_connect ($hote, $user, $pass) or die (mysql_error ()); /* Connexion */
$ret = mysql_select_db ($base) or die (mysql_error ());
$numphoto=1;
$req = 'SELECT num_photo,auteur,nb_vote FROM humour WHERE num_photo = "$numphoto"';
$ret = mysql_query($req) or die (mysql_error ());
$num=mysql_num_rows($ret);
echo"$num auteur trouvé pour cette requete";
$new_nbvote=$ret["nb_vote"]+1;
echo "Vous avez voté pour ",$ret["auteur"], "Il a maintenant",$new_nbvote, "voix.";
?>
</body>
</html>
J'ai un problème lié à l'envoi des données d'un formulaire vers le script. En effet, je fais un sondage, et mes valeurs proviennent d'une base de données, mais je ne récupère aucune donnée dans mon script.
Merci d'avance.
?>
<FORM METHOD="post" ACTION="sondage.php">
<CENTER>
<TABLE> <TR>
<TD>
<?php
while ($row = mysql_fetch_assoc($ret))
{
echo $row["num_photo"];
echo" ";
?>
<INPUT TYPE="radio" NAME="elu" VALUE="<?php $row["num_photo"] ?>" >
<?php
echo $row["auteur"];
?> <br> <?php
}
?>
<INPUT TYPE="submit" VALUE="envoyer">
</TABLE></CENTER>
</FORM>
</body>
</html>
et le 2eme :
<body>
<?php
$elu=$_POST['elu']; print("<center>vous avez choisi $elu</center>");
/* Connexion à la table humour */
$hote = 'localhost';
$base = 'photo';
$user = 'root';
$pass = '';
$cnx = mysql_connect ($hote, $user, $pass) or die (mysql_error ()); /* Connexion */
$ret = mysql_select_db ($base) or die (mysql_error ());
$numphoto=1;
$req = 'SELECT num_photo,auteur,nb_vote FROM humour WHERE num_photo = "$numphoto"';
$ret = mysql_query($req) or die (mysql_error ());
$num=mysql_num_rows($ret);
echo"$num auteur trouvé pour cette requete";
$new_nbvote=$ret["nb_vote"]+1;
echo "Vous avez voté pour ",$ret["auteur"], "Il a maintenant",$new_nbvote, "voix.";
?>
</body>
</html>
A voir également:
- Formulaire php/base de données
- Whatsapp formulaire opposition - Guide
- Fuite données maif - Guide
- Formulaire de réclamation facebook - Guide
- Base de registre - Guide
- Formulaire de reclamation instagram - Guide
9 réponses
$elu=$_POST['elu']; print("<center>vous avez choisi $elu</center>"); => cela affiche le vote effectué ?
$ret = mysql_select_db ($base) or die (mysql_error ()); => Pas d'erreur ?
Sinon ajoute cela :
$sql = mysql_query('UPDATE humour SET nb_vote="'.$new_nbvote.'" WHERE num_photo = "'.$numphoto.'");
Ca devrait marcher
$ret = mysql_select_db ($base) or die (mysql_error ()); => Pas d'erreur ?
Sinon ajoute cela :
$sql = mysql_query('UPDATE humour SET nb_vote="'.$new_nbvote.'" WHERE num_photo = "'.$numphoto.'");
Ca devrait marcher
Merci pour ta réponse, en fait, je n'arrive même pas à afficher le vote effectué
$elu=$_POST['elu']; print("<center>vous avez choisi $elu</center>"); => cela affiche seulement : "vous avez choisi"
J'ai l'impression que la donnée n'est pas transmise, mais je ne vois pas du tout d'où ça vient (je suis une grande débutante...)
$elu=$_POST['elu']; print("<center>vous avez choisi $elu</center>"); => cela affiche seulement : "vous avez choisi"
J'ai l'impression que la donnée n'est pas transmise, mais je ne vois pas du tout d'où ça vient (je suis une grande débutante...)
$ret = mysql_query($req) or die (mysql_error ());
$num=mysql_num_rows($ret);
echo"$num auteur trouvé pour cette requete";
$new_nbvote=$ret["nb_vote"]+1;
ce code n'est pas bon
mysql_query fait l'extraction de la base et les réponses sont stockées en mémoire il faut aller les chercher
par un mysql_fetch...
et dans ton formulaire il manque echo:
$num=mysql_num_rows($ret);
echo"$num auteur trouvé pour cette requete";
$new_nbvote=$ret["nb_vote"]+1;
ce code n'est pas bon
mysql_query fait l'extraction de la base et les réponses sont stockées en mémoire il faut aller les chercher
par un mysql_fetch...
$ret = mysql_query($req) or die (mysql_error ()); $result=mysql_fetch_array($ret); // mysql_num_rows($ret); te renvoie seule ment le nombre d'enregistrements trouvés ! dans ton cas ce sera toujours 1 $new_nbvote=$result["nb_vote"]+1; echo "Vous avez voté pour ",$result["auteur"], "Il a maintenant",$new_nbvote, "voix.";
et dans ton formulaire il manque echo:
<INPUT TYPE="radio" NAME="elu" VALUE="<?php echo $row["num_photo"]; ?>" > <?php echo $row["auteur"]; ?> <br> <?php } ?>
Merci pour ta réponse Alain_42.
J'ai réussi à faire passer ma variable, il me manquait effectivement le "echo" dans mon formulaire.
le problème est que ma requête ne renvoie aucun enregistrement (alors qu'il devrait y en avoir un comme vous avez dit). Voici mon script :
$req = 'SELECT num_photo,auteur,nb_vote FROM humour WHERE num_photo = "$elu"';
$ret = mysql_query($req) or die (mysql_error ());
$result=mysql_fetch_array($ret);
$num=mysql_num_rows($ret);
echo"$num auteur trouvé pour cette requete";
$new_nbvote=$result["nb_vote"]+1;
$sql=mysql_query('UPDATE humour SET nb_vote=".$new_nbvote." WHERE num_photo = ".$numphoto."');
echo "Vous avez voté pour ",$result["auteur"], "Il a maintenant",$result["nb_vote"], "voix.";
?>
</body>
</html>
et mon écran m'affiche :
vous avez voté pour la photo numero11
0 auteur trouvé pour cette requeteVous avez voté pour Il a maintenantvoix.
Est-ce que ça vient d'un problème de syntaxe dans le print ? (je suis pas trop à l'aise sur ce point avec les variables)
J'ai réussi à faire passer ma variable, il me manquait effectivement le "echo" dans mon formulaire.
le problème est que ma requête ne renvoie aucun enregistrement (alors qu'il devrait y en avoir un comme vous avez dit). Voici mon script :
$req = 'SELECT num_photo,auteur,nb_vote FROM humour WHERE num_photo = "$elu"';
$ret = mysql_query($req) or die (mysql_error ());
$result=mysql_fetch_array($ret);
$num=mysql_num_rows($ret);
echo"$num auteur trouvé pour cette requete";
$new_nbvote=$result["nb_vote"]+1;
$sql=mysql_query('UPDATE humour SET nb_vote=".$new_nbvote." WHERE num_photo = ".$numphoto."');
echo "Vous avez voté pour ",$result["auteur"], "Il a maintenant",$result["nb_vote"], "voix.";
?>
</body>
</html>
et mon écran m'affiche :
vous avez voté pour la photo numero11
0 auteur trouvé pour cette requeteVous avez voté pour Il a maintenantvoix.
Est-ce que ça vient d'un problème de syntaxe dans le print ? (je suis pas trop à l'aise sur ce point avec les variables)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
$sql=mysql_query('UPDATE humour SET nb_vote=".$new_nbvote." WHERE num_photo = ".$numphoto."');
$numphoto ça sort d'ou ?
pour ton pb fais un echo de $elu
pour voir ce que tu reçoit:
$numphoto ça sort d'ou ?
$sql=mysql_query('UPDATE humour SET nb_vote=".$new_nbvote." WHERE num_photo = ".$elu."');serait mieux
pour ton pb fais un echo de $elu
pour voir ce que tu reçoit:
echo "Numero elu: ".$elu; $req = 'SELECT num_photo,auteur,nb_vote FROM humour WHERE num_photo = "$elu"'; ......
essayes avec:
en php dans les chaines qui commencent et finissent par ' les variables ne sont pas interpréptées, elles le sont dans les chaines qui sont encadrées par des"
donc essayes:
en php dans les chaines qui commencent et finissent par ' les variables ne sont pas interpréptées, elles le sont dans les chaines qui sont encadrées par des"
donc essayes:
$req = 'SELECT num_photo,auteur,nb_vote FROM humour WHERE num_photo = "'.$elu.'"'; OU $req = "SELECT num_photo,auteur,nb_vote FROM humour WHERE num_photo = '$elu'";
Avec quelques modifications, je me suis rendue compte qu'en remplaçant ".$elu." par un nombre, ma 1ere requete (select...) fonctionne et me renvoie ce que je veux obtenir. Cela viendrait d'un problème de syntaxe ?
Quant à la 2eme, au lieu de m'ajouter 1 voix, elle m'a initialisé à 0 !? ($new_nbvote=$result["nb_vote"]+1; semble fonctionner)
Quant à la 2eme, au lieu de m'ajouter 1 voix, elle m'a initialisé à 0 !? ($new_nbvote=$result["nb_vote"]+1; semble fonctionner)