• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mir While und array

Acer90

Mitglied
Also kurz und knapp, leider funktioniert es so nicht.
Ich will das alte Skript

PHP:
$servers = array(
    'server 1' => array('doom3', '127.0.0.1', 11111),
    'server 2' => array('cssource', '127.0.0.1', 11111),
    'server 3' => array('halflife', '127.0.0.1', 11111),
    'server 4' => array('cod', '127.0.0.1', 11111)
);

auf eines umarbeiten, das die daten aus einer Mysql tabelle leißt und einträgt.

PHP:
$servers = array(
while ($rowneu = mysql_fetch_assoc($resneu)):
$sip = $rowneu['IP'];
$stype = $rowneu['type'];
$sport = $rowneu['Port'];
$sid = $rowneu['ID'];

"server $sid" => array("$stype", "$sip", "$sport"),
endwhile;
);

Für hilfe wär ich sehr dankbar.

mfg: Acer
 
Werbung:
Statt die While in das Array zu packen, musst du in der while das Array befüllen mit $servers[] = array(...). server 1 ist kein guter Wert für einen Schlüssel, lieber gleich numerische Indizes.
 
hä, sorry versteh ich grade nicht.

kannste mir bitte mal nen lösungsvorschlag geben.
danke schon mal im vorraus.

mfg:Acer
 
Werbung:
Du hast die While-Schleife in deinen array( )-Befehl gepackt. Das ist aber ungültig, vor allem, da php hier keine while-Schleife erwartet, sondern Strings bzw. Werte. Ein Beispiel:

PHP:
$servers = array( );
while( $row = mysql_fetch_assoc( $res ) ) {
    $id = $row[ 'ID' ];
    $servers[ $id ] = array( );
    $servers[ $id ][ ] = $row[ 'type' ];
    $servers[ $id ][ ] = $row[ 'ip' ];
    $servers[ $id ][ ] = $row[ 'port' ];
}
 
PHP:
    $servers[ $id ] = array( );
    $servers[ $id ][ ] = $row[ 'type' ];
    $servers[ $id ][ ] = $row[ 'ip' ];
    $servers[ $id ][ ] = $row[ 'port' ];

Das könnte auch so geschrieben werden:

PHP:
    $servers[ $id ] = $row;

Dann hättest du Zugriff auf die Daten über den assoziativen Index, nicht lediglich über den numerischen.
 
Werbung:
Zurück
Oben