0

mysql から配列データを追加しようとしています。ただし、最後の行の詳細のみが追加されています。array_push も試しましたが、うまくいきませんでした。誰でも助けることができますか

$sql="SELECT * FROM server_details";
$result=mysqli_query($dbC,  $sql);
while ($row = mysqli_fetch_array($result))
{
$services=array( 
    $row['server_name'] => array($row['server_add'] => $row['port'])
); 
}   
4

2 に答える 2

2

ループの反復ごとに新しい配列を作成しないことにより:

$sql      = "SELECT * FROM server_details";
$result   = mysqli_query($dbC,  $sql);
$services = array();

while ($row = mysqli_fetch_array($result)) {
    $services[$row['server_name']] = array($row['server_add'] => $row['port']); 
}   
于 2013-04-07T10:39:51.843 に答える
1

おそらくあなたはこれを探しています:

$services[ $row['server_name'] ] = array($row['server_add'] => $row['port']);

最後に、列の値$servicesでインデックス付けされた連想配列を変数に取得します。server_name

それらが一意でない場合は、代わりにこれを行う必要があります...

$services[ $row['server_name'] ][] = array($row['server_add'] => $row['port']);

この方法でも同じ連想配列を取得できますが、その値はインデックス付き配列になります。したがって、同じレコードの情報が失われることはありませんserver_name

于 2013-04-07T10:39:45.433 に答える