09-06-2008, 11:20 PM
(Modification du message : 09-06-2008, 11:23 PM par Shivaan Keldon.)
bon, j'ai un peu eu le temps d'analyser ton code. voici comment je le ferai :
Code PHP :
<?php
function votes2($id){
global $userrow;
$user = $userrow["charname"];
$page.=" // la Presentation de l'objet ce fait ici (retirer pour gagner de la place)";
// on s'occupe en priorité des insert/update, afin qu'ils soient visible par la suite
// si tu affiches un truc en faisant un update juste derrière, ça n'apparaitra pas à l'écran ;)
$vote = "";
if (isset($_POST["vote3"])) $vote = "vote+1";
if (isset($_POST["vote4"])) $vote = "vote-1";
if ($vote!="") {
// pourquoi y'avait un limit dans cette query ?
doquery("UPDATE {{table}} SET vote=$vote WHERE id=$id", "creator");
// il sortait d'ou ton $votant2 dans celle-ci ?
doquery("INSERT INTO {{table}} (votant, numero) VALUES ('$user',$id)", "votant");
$page.="<br>vote enregistré avec succes";
}
$resvote = doquery("SELECT numero FROM {{table}} WHERE numero=$id AND votant='$user' ", "votant");
// il n'a pas voté
if (mysql_num_rows($resvote)==0) {
$page .= "..."; // formulaire de vote
}
display($page, "votes");
}
voilà en gros. bon c'est pas super optimisé, et je pense ne pas avoir tout compris à ton code (comme le $votant2 qui est utilisé dans une requête mais initialisé nulle part). mais voici un résumé de l'algorithme que j'utiliserai dans ce cas.
j'espère que ça t'aidera
ps : ha oui, j'ai supprimé aussi la query pour récup les infos de l'objet. faut la remettre si tu veux que ça marche ^^