webForumDet fria alternativet

röst läggs inte till på pollresultat

PHP

8 svar · 267 visningar · startad av visslaren

Medlem sedan juli 20011 222 inlägg
Frågan#1

har ett litet problem med en poll. den vill inte lägga till nån röst även fast man röstat.

if ($o==1) {
$sql="UPDATE week SET res1=res1+1";
}
elseif ($o==2) {
$sql="UPDATE week SET res2=res2+1";
}
elseif ($o==3) {
$sql="UPDATE week SET res3=res3+1";
}
elseif ($o==4) {
$sql="UPDATE week SET res4=res4+1";
}
mysql_query("$sql")
or die(mysql_error());

anropas med vanliga länkar såsom denna:

echo ("&nbsp;&nbsp;<a href=javascript:voter('vote.php?o=3','vote','scrollbars=yes,width=350,height=280')>".$rad10[6]."</a>");

när man tryckt på länken så öppnas sidan som lägger till rösten i ett nytt fönster som sedan skickas vidare till resultaten. men som sagt; ingen röst lägs till.
det har fungerat förut men inte nu längre. nån som kan se nåt fel?

Medlem sedan aug. 20002 975 inlägg
#2

Ett långskott.

Du har inte nyligen uppdaterat din PHP till en nyare version. I såfall kan register_globals numera vara satt till Off, och då får du istället skriva:

if ($_GET['o']==1) {
Medlem sedan juli 20011 222 inlägg
#3

register_globals är satt till On men jag provade ändå med $_GET['o'] men det fungera inte :(

Medlem sedan aug. 20002 975 inlägg
#4

En annan sak, som jag i och för sig inte tror gör någon skillnad, är att du ska inte ha några citationstecken runt din variabel i mysql_query().

mysql_query($sql)
or die(mysql_error());

Annars blir det till att lägga in lite echo här och var, t.ex i if-satserna och echo $sql före mysql_query($sql);

Medlem sedan feb. 20012 412 inlägg
#5
if ($o==1) {
$sql="UPDATE week SET res1=res1+1";
}
elseif ($o==2) {
$sql="UPDATE week SET res2=res2+1";
}
elseif ($o==3) {
$sql="UPDATE week SET res3=res3+1";
}
elseif ($o==4) {
$sql="UPDATE week SET res4=res4+1";
}
mysql_query("$sql")
or die(mysql_error());

Lite OT, men varför använder du inte en switch-sats istället?

Medlem sedan juli 20011 222 inlägg
#6

när jag skrev koden hade jag inte så mycket tid på mig så det blev en ifsats då :)

har prövat en switch sats nu men ingen förändring:

switch ($o) {
    case 1:
        $sql="UPDATE week SET res1=res1+1";
        break;
    case 2:
        $sql="UPDATE week SET res2=res2+1";
        break;
    case 3:
        $sql="UPDATE week SET res3=res3+1";
        break;
    case 4:
        $sql="UPDATE week SET res4=res4+1";
		break;
}
Medlem sedan juli 20011 222 inlägg
#7

ok. det är nu uppenbart vad felet beror på; min korkskallighet :P det var inte alls fel på den där koden, däremot var det fel i koden som visade resultatet. spelbasen (som pollen finns på) bytte server nu i dagarna och jag missade tydligen ändra mysqlkopplingen på den sidan som visar resultat så den läste av från gamla databasen. så nu har jag ödslat ett par timmar på att försöka hitta ett fel på en felfri sida :P

fast jag lärde mig ju i alla fall switch som jag nu använder istället för den där isatsen.

tack för hjälpen iaf :D

Medlem sedan dec. 2001314 inlägg
#8

Varför krångla till det?

$sql="UPDATE week SET res$o=res$o+1";
Medlem sedan mars 2002112 inlägg
#9

Haha, vad jobbigt. Sånt där är väl ändå lite otur de :)

254 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)