sverebom
Vice Admiral
- Registriert
- Aug. 2004
- Beiträge
- 6.644
Hallo,
ich bastel gerade ein Forum für eine "Herr der Ringe Online"-Raid-Gemeinschaft zusammen. Für die Verteilung des "Loots" (im Spiel erkämpfte Gegenstände) möchten wir das "Suicide Kings System" verwenden. Um die Listen und Tabellen, aus den hervor geht, wer berechtigt ist, einen gewünschten Gegenstand zu erhalten, möchte ich dieses Tool verwenden. Das Tool ist bereits installiert und gibt zumindest schon einmal keine Fehlermeldung aus, allerdings werden die Daten, die mit dem Tool in der Datenbank hinterlegt werden, nicht abgerufen.
Im Einzelnen läuft es wie folgt ab: Ich erstelle auf der Admin-Seite diverse Spieler, die bei den verschiedenen Raids mitmachen können. Diese sortiere ich dann in den Raids ein und speichere die Änderungen ab. Anschließend erscheinen die Veränderungen auch auf der Admin-Seite, wenn ich aber die Seite verlasse und neu aufrufe, sind alle Veränderungen verschwunden und die Spieler erscheinen alle wieder in der Liste der verfügbaren Spieler. Außerdem sollte für die Spieler eine HTML-Seite erstellt werden, auf der sie sehen können, in welchen Raids sie gemeldet sind und an welcher Position sie sich in der Vergabeliste befinden. Auch diese Seite wird nicht generiert, was eigentlich nur dann passiert, wen in der Datenbank keine Daten hinterlegt sind. Allerdings befinden sich alle Spieler und Listen in der Datenbank. Sie werden offenbar nur nicht abgerufen.
Ich sollte noch erwähnen, dass das Tool mit MySQL4 funktioniert. Allerdings brauche ich für das Tool PHP5, also musste ich die Seite, die bei All-Inkl gehostet wird, auf einen Server transferieren lassen, auf dem PHP5 läuft. Und da All-Inkl PHP5 nur in Verbindung mit MySQL5 anbietet, musste ich also auch auf MySQL5 wechseln, was laut dem Autor des Tools kein Problem sein sollte.
Ich vermute, dass der Fehler im PHP-Code steckt und die Listen schlichtweg nicht korrekt geladen werden.
Dieser Code-Schnipsel lädt die Spieler, die in der Datenbank hinterlegt sind, in die Liste der verfügbaren Spieler. Das scheint auch zu funktionieren.
Dieser Code-Schnippsel lädt die verfügbaren Spieler in die Liste der Spieler, die für Raids vorgesehen sind. Das funktioniert nur solange, wie ich die Seite nicht wieder verlasse.
Dieser Code-Schnipsel lädt die eingeplanten Spieler in die Verteilungs-Listen der verschiedenen Raids. Auch dies scheint nur solange zu funktionieren, wie ich die Seite nicht verlasse.
Der folgende Code-Schnipsel könnte mit Blick auf MySQL5 auch fehlerhaft sein.
Da der Fehler auch in der Datenbank liegen könnte hier noch der betreffende Abschnitt der Datenbank:
ich bastel gerade ein Forum für eine "Herr der Ringe Online"-Raid-Gemeinschaft zusammen. Für die Verteilung des "Loots" (im Spiel erkämpfte Gegenstände) möchten wir das "Suicide Kings System" verwenden. Um die Listen und Tabellen, aus den hervor geht, wer berechtigt ist, einen gewünschten Gegenstand zu erhalten, möchte ich dieses Tool verwenden. Das Tool ist bereits installiert und gibt zumindest schon einmal keine Fehlermeldung aus, allerdings werden die Daten, die mit dem Tool in der Datenbank hinterlegt werden, nicht abgerufen.
Im Einzelnen läuft es wie folgt ab: Ich erstelle auf der Admin-Seite diverse Spieler, die bei den verschiedenen Raids mitmachen können. Diese sortiere ich dann in den Raids ein und speichere die Änderungen ab. Anschließend erscheinen die Veränderungen auch auf der Admin-Seite, wenn ich aber die Seite verlasse und neu aufrufe, sind alle Veränderungen verschwunden und die Spieler erscheinen alle wieder in der Liste der verfügbaren Spieler. Außerdem sollte für die Spieler eine HTML-Seite erstellt werden, auf der sie sehen können, in welchen Raids sie gemeldet sind und an welcher Position sie sich in der Vergabeliste befinden. Auch diese Seite wird nicht generiert, was eigentlich nur dann passiert, wen in der Datenbank keine Daten hinterlegt sind. Allerdings befinden sich alle Spieler und Listen in der Datenbank. Sie werden offenbar nur nicht abgerufen.
Ich sollte noch erwähnen, dass das Tool mit MySQL4 funktioniert. Allerdings brauche ich für das Tool PHP5, also musste ich die Seite, die bei All-Inkl gehostet wird, auf einen Server transferieren lassen, auf dem PHP5 läuft. Und da All-Inkl PHP5 nur in Verbindung mit MySQL5 anbietet, musste ich also auch auf MySQL5 wechseln, was laut dem Autor des Tools kein Problem sein sollte.
Ich vermute, dass der Fehler im PHP-Code steckt und die Listen schlichtweg nicht korrekt geladen werden.
Dieser Code-Schnipsel lädt die Spieler, die in der Datenbank hinterlegt sind, in die Liste der verfügbaren Spieler. Das scheint auch zu funktionieren.
PHP:
<?php
$query = "SELECT name FROM skapp ORDER BY name, class;";
$result = mysql_query($query);
echo mysql_error();
while ($a = mysql_fetch_assoc($result)) {
$b = $a["name"];
if (array_search($b, (array)$currentraid) === FALSE) {
echo "<OPTION value='$b'>$b</OPTION>";
}
}
?>
Dieser Code-Schnippsel lädt die verfügbaren Spieler in die Liste der Spieler, die für Raids vorgesehen sind. Das funktioniert nur solange, wie ich die Seite nicht wieder verlasse.
PHP:
<?php
foreach ((array)$currentraid as $a) {
echo "<OPTION value='$a'>$a</OPTION>";
}
?>
Dieser Code-Schnipsel lädt die eingeplanten Spieler in die Verteilungs-Listen der verschiedenen Raids. Auch dies scheint nur solange zu funktionieren, wie ich die Seite nicht verlasse.
PHP:
<?php
if (isset($_REQUEST["loadlists"])) {
$query = "SELECT name FROM skapp WHERE $curflat ORDER BY list_welt;";
// echo $query;
$result = mysql_query($query);
while ($a = mysql_fetch_assoc($result)) {
$b = $a["name"];
echo "<OPTION value='$b'>$b</OPTION>";
}
}
?>
Der folgende Code-Schnipsel könnte mit Blick auf MySQL5 auch fehlerhaft sein.
PHP:
//print_r($currentraid);
if (isset($_REQUEST["confirmlists"])) {
$_REQUEST["loadlists"] = 1;
$result = mysql_query("SELECT * FROM skapp WHERE $weltflat");
$weltposlist = array();
$spalteposlist = array();
$helegrodposlist = array();
$filikulposlist = array();
$waechterposlist = array();
$darnarbposlist = array();
while ($a = mysql_fetch_assoc($result)) {
array_push($weltposlist, $a["list_welt"]);
array_push($spalteposlist, $a["list_spalte"]);
array_push($helegrodposlist, $a["list_helegrod"]);
array_push($filikulposlist, $a["list_filikul"]);
array_push($waechterposlist, $a["list_waechter"]);
array_push($darnarbposlist, $a["list_darnarb"]);
}
sort($weltposlist);
sort($spalteposlist);
sort($helegrodposlist);
sort($filikulposlist);
sort($waechterposlist);
sort($darnarbposlist);
$weltlist = $_REQUEST["weltlist"];
$spaltelist = $_REQUEST["spaltelist"];
$helegrodlist = $_REQUEST["helegrodlist"];
$filikullist = $_REQUEST["filikullist"];
$waechterlist = $_REQUEST["waechterlist"];
$darnarblist = $_REQUEST["darnarblist"];
$weltupd=array_combine($weltlist, $weltposlist);
$spalteupd=array_combine($spaltelist, $spalteposlist);
$helegrodupd=array_combine($helegrodlist, $helegrodposlist);
$filikulupd=array_combine($filikullist, $filikulposlist);
$waechterupd=array_combine($waechterlist, $waechterposlist);
$darnarbupd=array_combine($darnarblist, $darnarbposlist);
foreach($weltupd as $name => $position) {
$resultLoop = mysql_query("UPDATE skapp SET list_welt='$position', date=NOW() WHERE name='$name';");
}
foreach($spalteupd as $name => $position) {
$resultLoop = mysql_query("UPDATE skapp SET list_spalte='$position', date=NOW() WHERE name='$name';");
}
foreach($helegrodupd as $name => $position) {
$resultLoop = mysql_query("UPDATE skapp SET list_helegrod='$position', date=NOW() WHERE name='$name';");
}
foreach($filikulupd as $name => $position) {
$resultLoop = mysql_query("UPDATE skapp SET list_filikul='$position', date=NOW() WHERE name='$name';");
}
foreach($waechterupd as $name => $position) {
$resultLoop = mysql_query("UPDATE skapp SET list_waechter='$position', date=NOW() WHERE name='$name';");
}
foreach($darnarbupd as $name => $position) {
$resultLoop = mysql_query("UPDATE skapp SET list_darnarb='$position', date=NOW() WHERE name='$name';");
}
Da der Fehler auch in der Datenbank liegen könnte hier noch der betreffende Abschnitt der Datenbank:
Code:
--
-- Tabellenstruktur für Tabelle `skapp`
--
CREATE TABLE IF NOT EXISTS `skapp` (
`name` varchar(50) NOT NULL default '',
`list_welt` int(11) NOT NULL default '0',
`list_spalte` int(11) NOT NULL default '0',
`list_helegrod` int(11) NOT NULL default '0',
`list_filikul` int(11) NOT NULL default '0',
`list_waechter` int(11) NOT NULL default '0',
`list_darnarb` int(11) NOT NULL default '0',
`isguild` tinyint(1) NOT NULL default '0',
`class` varchar(50) NOT NULL default '',
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='SK data table';
--
-- Daten für Tabelle `skapp`
--
INSERT INTO `skapp` (`name`, `list_welt`, `list_spalte`, `list_helegrod`, `list_filikul`, `list_waechter`, `list_darnarb`, `isguild`, `class`, `date`) VALUES
('Halvitur', 3, 1, 1, 1, 1, 1, 1, 'waechter', '2009-10-19 16:25:39'),
('Caitlyn', 1, 2, 2, 2, 2, 2, 1, 'barde', '2009-10-19 16:25:39'),
('Aldoran', 2, 3, 3, 3, 3, 3, 1, 'hauptmann', '2009-10-19 16:25:39');