Page 1 sur 1

Création d'un site de vote (Php/SQL)

Posté : 14 déc. 2012, 18:22
par originguy
Bonjour,
j'ai un petit problème qui me bloque et que je n'arrive pas à régler lors de la création de mon site de vote.
J'ai donc un premier formulaire qui permet d'attribuer des notes à différents candidats stockés dans une BDD
<Html>
<Body>
<Form ACTION="recap.php" METHOD="post">
<Table border=1>
<TR> <TD> Nom </TD> <TD> Prenom </TD><TD>Total</TD><TD>Note</TD>
<?php
$connect = mysql_connect("localhost","xxxxxxxx","xxxxxxx") or die("Impossible de se connecter : " . mysql_error());
$result = mysql_select_db("xxxxxxx");
$result = mysql_query("SELECT * FROM Candidats");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
echo "<TR><TD>".$row[1]."</TD><TD>".$row[2]."</TD><TD></TD><TD><INPUT type=\"text\" value=\"\" name=\"".$row[0]."\"></TD></TR><br>";
}
mysql_free_result($result);
mysql_close($connect);
?>
</Table>
<Input type=submit value=voter>
</Form>
</Body>
</Html>
Ce premier script génère donc un tableau à partir de ma Table Candidats dont les 3 colonnes sont ID, Nom et Prénom.
Et voici un 2nd script qui permet de faire une page récapitulative du vote.
<html>
<body>
<TABLE BORDER="1">
<TR> <TD> Nom </TD> <TD> Prenom </TD><TD>Total</TD><TD>Note</TD>
<?php
$connect = mysql_connect("localhost","xxxxxxx","xxxxxxx") or die("Impossible de se connecter : " . mysql_error());
$query='use xxxxxx';
mysql_query($query);
$query="INSERT INTO `xxxxxxxx`.`GenereNumVote` (`idvote`) VALUES ('');";
$res=mysql_query($query);
$result = mysql_select_db("xxxxxxx");
$connect = mysql_connect("localhost","xxxxxxx","xxxxxxxx") or die("Impossible de se connecter : " . mysql_error());
$result = mysql_query("SELECT * FROM Candidats");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
echo "<TR><TD>".$row[1]."</TD><TD>".$row[2]."</TD><TD>"."</TD><TD>".$_POST[$row[0]]."</TD></TR><br>";
}
mysql_free_result($result);
mysql_close($connect);
?>
</body>
</html>
Par contre je voudrais que ce script enregistre les notes saisies dans une 2nd Table nommé Vote dont les colonnes seraient Idvote et Note.
Je cherche donc un moyen d'enregistrer les valeurs de row[0] et $_POST[$row[0]] dans les colonnes Idvote et Note de cette Table Vote.
Pouvez-vous m'aider ?

Re: Création d'un site de vote (Php/SQL)

Posté : 14 déc. 2012, 20:10
par moogli
Salut,

Utilise la notation tableau pour nommer les champs de formulaire.

Par exemple pour chaque ligne de la table tu affiche
<input type="text" name="vote[]" value="" />
<input type="hidden" name="idcandidat[]" value="la valeur de l'id candidat de l'élément courant" />

Sur le traitement tu boucle sur $_POST['vote'] avec un foreach et utilise l'index pour récupérer l'id du candidat.

Les deux champs mis en même temps auront le même index donc tu ne perd pas la synchro entre le candidat et le vote.

@+

Re: Création d'un site de vote (Php/SQL)

Posté : 16 déc. 2012, 14:53
par Invité
Merci de ta réponse, cela m'éclaire beaucoup. Par contre dans la notation tableau avec vote[] et idcandidat[], dois-je laisser les crochets vides ou dois-je mettre quelques choses dedans ?

Re: Création d'un site de vote (Php/SQL)

Posté : 16 déc. 2012, 14:56
par moogli
c'est comme tu le souhaite le tous c'est qu'ils aient le même index (cas par défaut s'il n'y a pas d'index précisé).

tu peux même imaginer ne pas utiliser de champs pour l'id candidat et utiliser l'id du candidat comme clef primaire.

Comme ça tu affiche les champs que tu veux, avec l'id du candidat courant en index.

pour le traitement tu récupère cet id avec un foreach ($tableau as $idCandidat => $valeur).


@+

Re: Création d'un site de vote (Php/SQL)

Posté : 16 déc. 2012, 15:00
par Invité
Ok j'ai compris et je vais tester ça, merci beaucoup pour ton aide !