Map X und Y

Lukas03

Mitglied
Hallo,

habe zwei Probleme mit meiner programmierten spielermap.

1. Fehler.) Nur ein Datensatz wird in die Karte übergeben, warum wird der zweite User nicht angezeigt?
2. Fehler.) Der erste User wird zweimal ausgeben gleich daneben. :-/
Die X & Y Koordinaten werden beim Registrieren automatisch per Zufall generiert.-/

PHP:
<?php
include ('config.php');

    $sql = mysqli_query($db,"SELECT id, x, y, username FROM spieler ORDER BY x");
    $row2 =  mysqli_fetch_object($sql);
    
    $koordinatenx = $row2->x; // X  Koordinaten werden aus der Datenbank übertragen
    $koordinateny = $row2->y; // Y  Koordinaten werden aus der Datenbank übertragen
    $username = $row2->username;// // Username wird aus der Datenbank übertragen
    $userid = $row2->id;
    $max = 25; // Größe der Karte
  
   echo '<table bgcolor="#000000" border="0" cellpadding="0" cellspacing="2">';

   for($y = 1; $y <= $max; $y++)
        {
            echo '<tr>';

            for($x = 1; $x <= $max; $x++)
            {   
                     $sql = mysqli_query($db,"SELECT id, x, y, username FROM spieler ORDER BY x");
                  
                      while($row2 = mysqli_fetch_object($sql)) 

                    if ($x  == $koordinatenx & $y == $koordinateny){ // Koordinaten werden mit der Schleife verglichen?? FEHLER?
                          
                    echo "<td>";
                    echo '<a href="user.php?id=';
                    echo $userid;
                    echo '"><img src="insel.gif" title="';
                    echo $username;
                    echo $koordinatenx;
                    echo '.';
                    echo $koordinateny;
                    echo '"></a>';
                    echo '</td>';
                
                       }
                
                    else { //keine Koordinaten
                    echo "<td>";
                    echo '<img src="wasser.gif" title="Wasser"';
                    echo '">';
                    echo '</td>';
                        }
                    

            }
            echo '</tr>';
        }
        echo '</table>';

?>



Map als im Anhang mit MYSQL Struktur


Über einen hilfreichen Tipp würde ich mich sehr freuen :)

Gruß
Lukas
 

Anhänge

  • map.jpg
    map.jpg
    298,4 KB · Aufrufe: 7
Lösung
Die Lösung habe ich dir in Posting #4 angegeben. Ausprogrammiert würde das so aussehen:
Code:
$max = 25; // Größe der Karte
$sql = mysqli_query($db, "SELECT id, x, y, username FROM spieler");
$pos = [];
while ($row2 = mysqli_fetch_object($sql)) {
    $x = $row2->x;
    $y = $row2->y;
    $pos[$x][$y] = ['username' => $row2->username, 'id' => $row2->id];
}

echo '<table bgcolor="#000000" border="0" cellpadding="0" cellspacing="2">';


for ($y = 0; $y < $max; $y++) {
    echo '<tr>';
    for ($x = 0; $x < $max; $x++) {
        if (isset($pos[$x][$y])) {
            echo "<td>";
            echo '<a href="user.php?id=';
            echo $pos[$x][$y]['id'];
            echo '"><img src="insel.gif" title="';
            echo...
Zurück