Wie aus dem Screenshot zu entnehmen ist ( wenn es nicht etwas klein geworden ist ^^) habe ich dein Skript in einem lokalen Testserver eingebaut, daher ist da nichts mit meiner Source nachschauen. Ich schaue mir das morgen mal genau an, vll finde ich den Fehler ja.
Die { } schließen nur eine Variable eindeutig ein, sollten also keinen wirklichen Unterschied machen.
Die ' ' dienen dazu bei einem assoziativen Array (Strings als Schlüssel [schlag mich bitte jemand, wenn ich da jetzt gerade was durcheinander werfe]) die Schlüssel eindeutig zu kennzeichnen, ansonsten sucht PHP zunächst nach Konstanten und noch ein paar andere Dinge, wenn ich das richtig in Erinnerung habe. Also eine mögliche Fehlerquelle (siehe auch Eliwoods Signatur ^^)
Hier mal die Datei mit Switch Kontrollstruktur. Das global $session muss nur in Funktionen rein und nicht in solch eine Struktur:
[php]<?
// Wahlen von Yorlii Che'el:
http://www.child-of-mystik-moon.de/lotgd//
// Von Newbi, mit großem Danke an einen geduldigen DOM, der Newbifragen beantwortet hat//
require_once "common.php";
page_header("Wahlen");
switch ($_GET['op']){
case 'ende':
$sql= "UPDATE accounts SET buergermeister = 0 ";
db_query($sql);
output("Die Wahl ist beendet");
addnav(" Wahlergebnisse","wahlen.php");
break;
case 'nimm':
output("`#Du krönst den neuen Fürsten`n");
$sql = "UPDATE accounts SET buergermeister= 1 WHERE acctid='$id'";
db_query($sql);
$sql = "UPDATE accounts SET getvote= 0 WHERE getvote >= 0 ";
db_query($sql);
if ($session[user][superuser]>=2)addnav("Ende","wahlen.php?op=beenden");
break;
case 'beenden':
$sql = "UPDATE accounts SET getvote= 0 WHERE getvote >= 0 ";
db_query($sql);
$sql = "UPDATE accounts SET gavevote= '0' WHERE gavevote >= 0 ";
db_query($sql); output("Die Wahl ist beendet.");
$session[user][gavevote]==0;
if ($session[user][superuser]>=2) addnav("Dorf","village.php");
break;
default:
output("`cDas Wahlzimmer`c`n`n`n`bEin freundlich dreiblickender Elf reicht Dir ein Pergament mit den aktuellen Wahlergebnissen`n`n");
if ($session[user][superuser]>=2)addnav ("Wahlen beenden","wahlen.php?op=ende");
addnav("Gehen","village.php");
output("`c`7Kandidaten `n`n<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999'>",true);
output("<tr class='trhead'><td><b>Name</b></td><td><b>APs</b></td><td>Stimmen</td> <td>Aktionen</td>",true);
$sql="SELECT * FROM accounts WHERE getvote > 0 ORDER BY getvote DESC ";
$result=db_query($sql);
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
output("<tr class='".($i%2?"trdark":"trlight")."'><td>",true);
output("$row[name]`n");
output("</td><td>",true);
output("$row[battlepoints]`n");
output("</td><td>",true);
output("$row[getvote]`n");
output("</td><td>",true);
if ($session[user][superuser]>=2) output("<a href='wahlen.php?op=nimm&id=$row[acctid]&login=$login'>`0[`^Krönen`0]</a>",true);
if ($session[user][superuser]<=0) output("<a href=\"mail.php?op=write&to=".rawurlencode($row['login'])."\" target=\"_blank\" onClick=\"".popup("mail.php?op=write&to=".rawurlencode($row['login'])."").";return false;\"><img src='images/newscroll.GIF' width='16' height='16' alt='Mail schreiben' border='0'></a>",true);
addnav("", "wahlen.php?op=nimm&id=$row[acctid]&login=$login");
}
output("</table>`c",true);
addnav("","bio.php?char=".rawurlencode($row['login'])."");
addnav("Dorf","village.php");
break;
}//switch op end
page_footer();
?>
[/php]
Schau es dir mal an und versuch es nachzuvollziehen... ansonsten stehe ich aller Voraussicht nach morgen (bzw. heute) über ICQ zur Verfügung dir das mal zu erklären. Ist nicht schwer, nur scheinbar verwirrender.
€dit: Das $i++ darf da nicht rein, ansonsten werden nicht alle accounts mit Stimme aufgelistet, sondern nur jeder zweite. Und das addnav davor konnte auch weg, hat scheinbar keinen nutzen, da es noch keinen op=ablehn gibt.[/php]