Hallo
Und mal wieder einen geistigen Knick im Hirn
Es gibt 2 Tabellen.
Die eine enthält Daten für Sternen Koordinaten und die andere Div. Einträge was sich dort befindet.
Das Problem ist das die Div. Einträge nur einmal durchlaufen wird!
Es wird nur der 1. Datensatz ausgegeben! Er soll aber für jede
gefundene Koordinate auch in der anderen Tabelle schauen ob ein
Eintrag vorhanden ist und gegebenenfalls ausgeben!
Die Sternenkoordinaten werden ohne Probleme durchsucht und auch
korrekt dargestelllt.
(Das Script läuft so wie dargestellt ohne Fehler! Die SQL Abfragen sind in externen Funktionen vorhanden!)
Danke für Eure Mühe
Gruss Peter A
Und mal wieder einen geistigen Knick im Hirn
Es gibt 2 Tabellen.
Die eine enthält Daten für Sternen Koordinaten und die andere Div. Einträge was sich dort befindet.
Das Problem ist das die Div. Einträge nur einmal durchlaufen wird!
Es wird nur der 1. Datensatz ausgegeben! Er soll aber für jede
gefundene Koordinate auch in der anderen Tabelle schauen ob ein
Eintrag vorhanden ist und gegebenenfalls ausgeben!
Die Sternenkoordinaten werden ohne Probleme durchsucht und auch
korrekt dargestelllt.
PHP-Code:
// Kartenausschnitt normal darstellen (aber in <DIV> wegen der nachfolgenden Symbolpositionierung)
$error_str .= "<tr><td border=0><div style='position:relative;'><img src=maps/$db_name/sm$user[location].png border=0 width=196 height=196 alt=\"Map of systems around $user[location]\">";
// Hier holen wir uns mal kurz die aktuellen X und Y Werte des aktuellen Systems...
db("SELECT * FROM ${db_name}_stars WHERE star_id = $user[location]");
$akt_lok = dbr();
$akt_x = $akt_lok[x_loc];
$akt_y = $akt_lok[y_loc];
db("SELECT * FROM ${db_name}_map_info WHERE login_id = '$user[login_id]'");
$info = dbr();
// 98 und -98 sind bei Mitte des Bildes (0, 0) zur Eingrenzung der Sterne aus der Abfrage
db("SELECT * FROM ${db_name}_stars WHERE (x_loc - $akt_x) > -98 AND (x_loc - $akt_x) < 98 AND (y_loc - $akt_y) > -98 AND (y_loc - $akt_y) < 98");
while ($star = dbr())
{
// Hier jeden auf der Minimap sichtbaren Quadaranten darstellen
$rel_x = 98 + ($star[x_loc] - $akt_x) - 7; // Die 6 kommt durch ((Symbolgröße / 2) - ) zustande, sind bei mir 13x13
$rel_y = 98 + ($star[y_loc] - $akt_y) - 7; // hier das gleiche
// Hier solltest du deine Sternenkarteneinträge abchecken ob Einträge existieren und gebenenfalls den Bildnamen ändern...
if($info['star_id'] == $star['star_id']){//Hier soll die passende gif Datei gefunden werden - Hier ist auch das eigentliche Problem!!!!
if($info['market'] == 1){
$sym = "images/minimap/market.gif";
}elseif($info['hole'] == 1){
$sym = "images/black_hole.gif";
}
}else{
$sym = "images/user_planet.gif";
}
$error_str .= "<div style='position:absolute;left:".$rel_x."px;top:".$rel_y."px;overflow:hidden;'>"; // Hiermit wird unser Symbol über den Kartenausschnitt relativ positioniert
$error_str .= "[img]".$sym."[/img]";
$error_str .= "</div>";
}
// Hier alle Tags schliessen
$error_str .= "</div>";
$error_str .= "</a></td></tr></table>";
Danke für Eure Mühe
Gruss Peter A

Kommentar