Notation par étoiles , insérer vote dans bdd
Fermé
max1395
-
14 sept. 2010 à 09:25
Jug4tsu Messages postés 56 Date d'inscription lundi 13 septembre 2010 Statut Membre Dernière intervention 1 septembre 2011 - 17 sept. 2010 à 10:01
Jug4tsu Messages postés 56 Date d'inscription lundi 13 septembre 2010 Statut Membre Dernière intervention 1 septembre 2011 - 17 sept. 2010 à 10:01
A voir également:
- Notation 5 étoiles excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
12 réponses
varfendell
Messages postés
3256
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
704
14 sept. 2010 à 09:30
14 sept. 2010 à 09:30
Bonjour,
Il va te falloir faire cela en php:
c'est une sorte de formulaire, quand tu l'enverra, tu pointera sur une page en php qui recuperera la note, et tu fera un script de connexion à ta base de données afin de sauvegarder la note.
Transmettre des données avec l'URL
Transmettre des données avec les formulaires
Lire des données
Ecrire des données
Il va te falloir faire cela en php:
c'est une sorte de formulaire, quand tu l'enverra, tu pointera sur une page en php qui recuperera la note, et tu fera un script de connexion à ta base de données afin de sauvegarder la note.
Transmettre des données avec l'URL
Transmettre des données avec les formulaires
Lire des données
Ecrire des données
nico7382
Messages postés
279
Date d'inscription
lundi 6 juin 2005
Statut
Membre
Dernière intervention
22 décembre 2010
50
14 sept. 2010 à 09:35
14 sept. 2010 à 09:35
salut,
je sais pas quelle technologie tu veux utiliser pour effectuer le vote.
mais je vais t'en proposer une, la plus ancienne, le formulaire
tu transformes ta liste en formulaire en entourant <form>
puis sur la page de réception, tu test tes valeurs.
pour intégrer le vote dans ta bdd, je vois une solution rapide a mettre en place :
il fau creer une table en plus qui contient au moins le produit que tu notes, et la note ( avoir pour ajouter si tu as des infos sur le votant)
ensuite il te reste qu'à faire un insert dans cette new table
je sais pas quelle technologie tu veux utiliser pour effectuer le vote.
mais je vais t'en proposer une, la plus ancienne, le formulaire
tu transformes ta liste en formulaire en entourant <form>
puis sur la page de réception, tu test tes valeurs.
pour intégrer le vote dans ta bdd, je vois une solution rapide a mettre en place :
il fau creer une table en plus qui contient au moins le produit que tu notes, et la note ( avoir pour ajouter si tu as des infos sur le votant)
ensuite il te reste qu'à faire un insert dans cette new table
Merci de vos réponses , j'ai essayé comme ca :
Pour voir mais ca ne marche pas , sa n'affiche pas la note . pourquoi ? merci
<form action="#" method="post"> Votre note<br/> <input type="hidden" name="note" value="" id="note"/> <ul class="notes-echelle"> <li> <label for="note01" title="Note : 1 sur 3">1</label> <input type="radio" name="notesA" id="note01" value="1" /> </li> <li> <label for="note02" title="Note : 2 sur 3">2</label> <input type="radio" name="notesA" id="note02" value="2" /> </li> <li> <label for="note03" title="Note : 3 sur 3">3</label> <input type="radio" name="notesA" id="note03" value="3" /> </li> <li> <label for="note04" title="Note : 4 sur 5">4</label> <input type="radio" name="notesA" id="note04" value="4" /> </li> <li> <label for="note05" title="Note : 5 sur 5">5</label> <input type="radio" name="notesA" id="note05" value="5" /> </li> </ul><br><br></h2> <input type="submit" value="Noter" class="bouton"/> </form> <?php echo $_POST['note'] ; ?>
Pour voir mais ca ne marche pas , sa n'affiche pas la note . pourquoi ? merci
Jug4tsu
Messages postés
56
Date d'inscription
lundi 13 septembre 2010
Statut
Membre
Dernière intervention
1 septembre 2011
13
14 sept. 2010 à 14:42
14 sept. 2010 à 14:42
Parce que $_POST['note'] correspond a l'input de type hidden dont la valeur est vide. Faut que tu fasses echo sur $_POST['notesA'] pour afficher ce qui a été choisi.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci maintenant que j'arrive a l'enregistré dans ma bdd , je voudrais pouvoir tous sélectionner et faire une moyenne , comment faire ? merci
Jug4tsu
Messages postés
56
Date d'inscription
lundi 13 septembre 2010
Statut
Membre
Dernière intervention
1 septembre 2011
13
14 sept. 2010 à 17:41
14 sept. 2010 à 17:41
SELECT AVG(note) FROM table;
Ok j'ai fais le code mais sa m'affiche rien , voila le code :
Merci
$vote=$_POST['notesA'] ; // On démarre la session mysql_query("INSERT INTO notation (news,vote) VALUES('$nom','$vote')"); $nom='newsdu20'; $sql =" SELECT AVG(vote) FROM notation WHERE news ='$nom' ;"; $result = mysql_query($sql) or die("Erreur SQL.<br>$sql<br>".mysql_error()); $data = mysql_fetch_array($result); ?> <br> <?php echo 'Moyenne :'; ?> <?php echo $data['vote'] ; ?> <form action="#" method="post"> Votre note<br/> <input type="hidden" name="note" value="" id="note"/> <ul class="notes-echelle"> <li> <label for="note01" title="Note : 1 sur 3">1</label> <input type="radio" name="notesA" id="note01" value="1" /> </li> <li> <label for="note02" title="Note : 2 sur 3">2</label> <input type="radio" name="notesA" id="note02" value="2" /> </li> <li> <label for="note03" title="Note : 3 sur 3">3</label> <input type="radio" name="notesA" id="note03" value="3" /> </li> <li> <label for="note04" title="Note : 4 sur 5">4</label> <input type="radio" name="notesA" id="note04" value="4" /> </li> <li> <label for="note05" title="Note : 5 sur 5">5</label> <input type="radio" name="notesA" id="note05" value="5" /> </li> </ul><br><br></h2> <input type="submit" value="Noter" class="bouton"/> </form>
Merci
varfendell
Messages postés
3256
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
704
15 sept. 2010 à 09:14
15 sept. 2010 à 09:14
remplace
<?php echo 'Moyenne :'; ?>par ça:
<?php echo 'Moyenne :'.$result; ?>
Ok merci de vos réponses , voila le code que j'ai fais mais il ne marche pas , je peux voter que une fois par choix , en gros je peux voter que une fois pour 1 , je peux voter que une fois pour 2 ect.... VOila le code dites moi ce qu'il ne vas pas merci :
<?php $nom='newsexample'; $note=$_POST['notesA'] ; // Connexion à la base de données mysql_connect('localhost', '******', '*******'); mysql_select_db('*******'); // Ajout du vote dans la base de données mysql_query("INSERT INTO notation (news,vote) VALUES('$nom', '$note') "); // Affichage de la moyenne et du nombre total des votes $sql ="SELECT COUNT(*) AS nombreentrer, AVG(vote) AS vote FROM notation WHERE news=$nom "; $result = mysql_query($sql) or die("Erreur SQL.<br />$sql<br />".mysql_error()); $data = mysql_fetch_array($result); echo 'Moyenne : ' . $data['vote']; echo 'Nombre de vote : ' . $data['nombreentrer'] . '<br />'; ?> <form action="#" method="post"> Votre note<br/> <input type="hidden" name="noteA" value="" id="note"/> <ul class="notes-echelle"> <li> <label for="note01" title="Note : 1 sur 3">1</label> <input type="radio" name="notesA" id="note01" value="1" /> </li> <li> <label for="note02" title="Note : 2 sur 3">2</label> <input type="radio" name="notesA" id="note02" value="2" /> </li> <li> <label for="note03" title="Note : 3 sur 3">3</label> <input type="radio" name="notesA" id="note03" value="3" /> </li> <li> <label for="note04" title="Note : 4 sur 5">4</label> <input type="radio" name="notesA" id="note04" value="4" /> </li> <li> <label for="note05" title="Note : 5 sur 5">5</label> <input type="radio" name="notesA" id="note05" value="5" /> </li> </ul><br><br></h2> <input type="submit" value="Noter" class="bouton"/> </form> <br /><br />
varfendell
Messages postés
3256
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
704
Modifié par varfendell le 15/09/2010 à 15:54
Modifié par varfendell le 15/09/2010 à 15:54
Je dirais que ton probleme viens de la:
en effet, si tu fait deux fois le même insert....le second va se contenter de se réécrire sur le précédant.
Il te faut un identifient auto incrémentable dans ta table.
Ou bien tu considères qu'une personne ne peut voter qu'une seule fois.
INSERT INTO notation (news,vote) VALUES('$nom', '$note')
en effet, si tu fait deux fois le même insert....le second va se contenter de se réécrire sur le précédant.
Il te faut un identifient auto incrémentable dans ta table.
Ou bien tu considères qu'une personne ne peut voter qu'une seule fois.
varfendell
Messages postés
3256
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
704
15 sept. 2010 à 16:01
15 sept. 2010 à 16:01
quand tu fait ton insert dans ta table, tu fait en gros:
INSERT INTO notation (news,vote) VALUES nom1, note1;
ta table notation, elle est comment? Elle a juste deux champs nom et note ou trois champs identifiant nom et note?
INSERT INTO notation (news,vote) VALUES nom1, note1;
ta table notation, elle est comment? Elle a juste deux champs nom et note ou trois champs identifiant nom et note?
J'ai réessayer en changeant par cette ligne :
Et biensure en ajoutant dans a bdd le champ id , mais ca marche toujours pas
mysql_query("INSERT INTO notation (id,film,vote) VALUES('','$nom', '$note') ");
Et biensure en ajoutant dans a bdd le champ id , mais ca marche toujours pas
varfendell
Messages postés
3256
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
704
Modifié par varfendell le 15/09/2010 à 16:16
Modifié par varfendell le 15/09/2010 à 16:16
le champ que tu as ajouter, c'est bien une clé primaire auto incremantable comme ça:
P_Id int NOT NULL AUTO_INCREMENT, PRIMARY KEY (P_Id)
Bon j'ai un champ id , en auto_increment mais sa marche toujours pas :s
varfendell
Messages postés
3256
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
704
16 sept. 2010 à 09:20
16 sept. 2010 à 09:20
envoi le code de ta table
Voila :
-- Structure de la table 'notation' -- CREATE TABLE IF NOT EXISTS 'notation' ( 'id' int(11) NOT NULL AUTO_INCREMENT, 'news' varchar(255) COLLATE latin1_general_ci NOT NULL, 'vote' int(11) NOT NULL, PRIMARY KEY ('id'), UNIQUE KEY 'id_news' ('news','vote') ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ;
Jug4tsu
Messages postés
56
Date d'inscription
lundi 13 septembre 2010
Statut
Membre
Dernière intervention
1 septembre 2011
13
17 sept. 2010 à 10:01
17 sept. 2010 à 10:01
Vu que id est en auto increment, t'es pas obligé de le mettre dans ta requête :
Si ça fonctionne toujours pas, fait un "echo mysql_error();" juste après ton mysql_query, ça t'expliquera pourquoi.
Aussi, une chaine vide sur un champ en int provoquera une erreur ;).
INSERT INTO notation (film, vote) VALUES('$nom', $note) ou INSERT INTO notation (id, film, vote) VALUES(NULL, '$nom', $note)
Si ça fonctionne toujours pas, fait un "echo mysql_error();" juste après ton mysql_query, ça t'expliquera pourquoi.
Aussi, une chaine vide sur un champ en int provoquera une erreur ;).