resultat sondage
le 11/06/2009 à 03:25
tyros
bonjour,
y a quelque chose qui cloche avec mon code, mais je n'arrive pas a voir c'est quoi. j'ai pris le code sur ce site et je l'ai adapter a mes besoins.
<?php
$sql = $db->prepare("update vote SET nombre = nombre +1 WHERE reponse = ?");
$sql->execute(array($_POST['reponse']));
$tableau_reponses = array();
$tableau_nb_reponses = array();
$statement = $db->prepare('SELECT reponse, nombre FROM vote');
$statement->execute();
while ($data = $statement->fetch()) {
$tableau_reponses[] = $data['reponse'];
$tableau_nb_reponses[] = $data['nombre'];
}
$nb_reponses_du_sondage = count ($tableau_reponses);
$nb_total_reponse = array_sum ($tableau_nb_reponses);
if ($nb_total_reponse == 0) {
echo 'Aucun vote pour l'instant';
}
else {
for ($i = 0; $i < $nb_reponses_du_sondage; $i++) {
echo $tableau_reponses[$i];
$pourcentage = ($tableau_nb_reponses[$i] * 100) / $nb_total_reponse;
$pourcentage = round ($pourcentage, 1);
echo ' ',$pourcentage,' %<br />';
}
echo '<br /><br />Nombre de votes : ', $nb_total_reponse;
}
?>
le 11/06/2009 à 03:36
Keika
Qu'est-ce qui cloche ? y a t-il une erreur retournée par PHP ou MySQL ?
Le PHP --> C'est dur !
A priori, la première requete SQL n'est pas bonne, il manque des quotes pour entourer une chaine de caractères :
<?php
$sql = $db->prepare("update vote SET nombre = nombre +1 WHERE reponse = '?'");
?>
Il manque aussi une protetcion de caractères à la ligne 24 :
<?php
echo 'Aucun vote pour l\'instant';
?>
PS : prend l'habitude, d'afficher tes erreurs de syntaxe et les erreurs SQL en phase de développement, ça aide.
Yo !
Ligne 38 :
echo '<br /><br />Nombre de votes :' , $nb_total_reponse;
Rajoutes bien le ' après : pour fermer le contenu de ton echo.
Galak_Fayyar
(La Globule) Il n'y a pas besoin de quotes autour du marqueur « ? » dans les prepared statement.
Le code collé dans le premier message fait apparaître clairement une erreur de syntaxe (soit louée la coloration syntaxique). Est-ce que tu utilises un éditeur de texte qui colore ton source ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
le 12/06/2009 à 01:25
tyros
non j'utilise pas d'editeur qui colore la source.
et php me retourne jamais de message d'erreur, est-ce que ca ce peut que mon hébergeur a programmer le serveur pour que php ne renvoi pas de message d'erreur?
le 12/06/2009 à 01:29
tyros
merci ca fonctionne.
le problème était cette ligne
[code[
echo 'Aucun vote pour l'instant';
[/code]
remplacer par
echo 'Aucun vote pour l\'instant';
mais je comprends pas pourquoi php ne me donne jamais de message d'erreur.
Il va falloir que tu mettes en place un environnement de développement local.
Tes premiers sources ne seront pas sûrs, il faut que tu les testes en local avant de les publier.
Donc :
1- utilises un éditeur de texte qui permet la coloration syntaxique. Vim, Emacs, Scite, UltraEdit, etc.
2- installes un environnement web local. Je ne sais pas si tu travailles sous Microsoft Windows ou un Linux, mais il existe des solutions pour installer un environnement web sur toutes les plate-formes.
Quand à ton problème initial, effectivement, s'était la quote. Mais comme tu as dû le voir, avec la coloration syntaxique ça saute aux yeux. Alors que sans... c'est invisible !
Bon courage à toi.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Va falloir que je m y mette à ce PDO.
Du coup, je dis que de la merde :)
Moi non plus je n'utilises pas PDO :p mais j'ai utilisé les Statement SQL de MySQL. Mais on a tous le droit de se tromper !
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: