Karte für Browsergame

  • Themenstarter Themenstarter Dkl764
  • Beginndatum Beginndatum
D

Dkl764

Hallo Community,
ich bin gerade dabei eine Karte für ein Browsergame zu programmieren.
Nun scheitere ich jedoch an einem kleinem Problem.

Um nicht für jedes Feld eine extra abfrage zu machen, überlege ich wie ich das anstellen kann mit nur einer Abfrage.

Habe da von mehrdymensionalen Arrays gehört.

Würde am liebsten dann eine Array haben und das in etwa so abrufen können:

$link[ X Position ][ Y Position ];
$typ[ X Position ][ Y Position ];

oder soetwas in der Art.

Aber wie trägt man aus einer Tabelle soetwas ein?

- Duellking -
 
Hi,
das ist eigentlich recht einfach.
Als erstes holst du dir die Daten aus der Datenbank und gehst dann dein Resultset zeilenweise durch und schreibst es in dein Array rein.

Das sähe dann Beispielhaft so aus:
PHP:
// Daten aus der Tabelle holen und in ein Resultset schreiben
$sql  = "SELECT x_pos, y_pos, link, typ ";
$sql .= "  FROM tabelle; ";
$rs = mysql_query( $sql );

// Resultset zeilenweise durchlaufen
while( list( $x_pos, $y_pos, $link, $typ ) = mysql_fetch_row( $rs ) )
{
    // Daten in die Arrays schreiben
    $link[ $x_pos ][ $y_pos ] = $link;
    $typ[ $x_pos ][ $y_pos ]  = $typ;
} // while( list( $x_pos, $y_pos, $link, $typ ) = mysql_fetch_row( $rs ) )

// Testausgabe
print_r( $link );
echo "<br /><br />";
print_r( $typ );

Das wäre das Beispiel mit deinen Variablennamen, aber ich würde es wohl eher mit einem Array machen, dass sähe dann so aus:
PHP:
// Daten aus der Tabelle holen und in ein Resultset schreiben
$sql  = "SELECT x_pos, y_pos, link, typ ";
$sql .= "  FROM tabelle; ";
$rs = mysql_query( $sql );

// Resultset zeilenweise durchlaufen
while( list( $x_pos, $y_pos, $link, $typ ) = mysql_fetch_row( $rs ) )
{
    // Daten in das Array schreiben
    $daten[ $x_pos ][ $y_pos ][ "link" ] = $link;
    $daten[ $x_pos ][ $y_pos ][ "typ" ]  = $typ;
} // while( list( $x_pos, $y_pos, $link, $typ ) = mysql_fetch_row( $rs ) )

// Testausgabe
print_r( $daten );

mfg. Fide
 
Zurück