2014-01-29 134 views
0

我得到这样的例子:从查询创建在一个while循环的关联数组

<?php 
$shop = array(array(Title => "rose", 
        Price => 1.25, 
        Number => 15 
       ), 
      array(Title => "daisy", 
        Price => 0.75, 
        Number => 25, 
       ), 
      array(Title => "orchid", 
        Price => 1.15, 
        Number => 7 
       ) 
     ); 
?> 

但我怎么可以让其中的一个结构如下:

$result2 = mysqli_query($con, "SELECT r.id AS id, CONCAT(g.fname,' ',g.lname) AS name, 
            r.arrival AS arrival, r.departure AS departure 
            FROM reservations r JOIN guests g ON r.guest = g.id 
            WHERE r.unit = ".$unit_id.""); 

while ($row2 = mysqli_fetch_assoc($result2)) 
    { 
     $reservations = array( array (id => $row['id'], 
             name => $row['name'], 
             arrival => $row['arrival'], 
             departure => $row['departure'], 
            )); 

    } 

回答

2

是你在找这个?这将给您带来像您展示的那样的结构的预订。

$result2 = mysqli_query($con, "SELECT r.id AS id, CONCAT(g.fname,' ',g.lname) AS name, 
            r.arrival AS arrival, r.departure AS departure 
            FROM reservations r JOIN guests g ON r.guest = g.id 
            WHERE r.unit = ".$unit_id.""); 

$reservations = array(); // makes sure the array exists in case result set is empty 
while ($row = mysqli_fetch_assoc($result2)) 
    { 
     $reservations[] = array (id => $row['id'], 
             name => $row['name'], 
             arrival => $row['arrival'], 
             departure => $row['departure'], 
            ); 

    } 

访问如下:

foreach ($reservations as $row){ 
    echo $row["name"]." arrival ". $row["arrival"]; 
    echo "<br />"; 
} 

您也可以访问:

for ($row = 0; $row<count($reservations); $row++){ 
    echo $reservations[$row]["name"]." arrival ". $reservations[$row]["arrival"]; 
    echo "<br />"; 
} 
+0

的查询将返回'行x'数。所以我想说明这一点。对我来说,这看起来像是每次迭代都会重新创建数组,并且在完成时只包含查询中的最后一行。 –

+0

如果这是从查询返回多少行,它将创建带有'x'个元素的$保留。 – mseifert

+0

好的。如何访问一行?例如,在我的第一个示例中,人们可以像这样访问数据: 'for($ row = 0; $ row <3; $ row ++) { echo $ shop [$ row] [“Title”]。“costs “$ shop [$ row] [”Price“]”,你就会得到“$ shop [$ row] [”Number“]; echo“
”; }' –

1

这个怎么样:

$result2 = mysqli_query($con, "SELECT r.id AS id, CONCAT(g.fname,' ',g.lname) AS name, 
           r.arrival AS arrival, r.departure AS departure 
           FROM reservations r JOIN guests g ON r.guest = g.id 
           WHERE r.unit = ".$unit_id.""); 
while($row = mysqli_fetch_assoc($result2) $reservations[] = $row; 

指令:

$reservations[] = $row; 

意味着$保留是一个数组,我们将追加该阵列$行上的下一个键($预约[下一关键] = $行)

+0

你将如何访问数据? –

+0

例如:$ reservations [0] ['name'] – Djidel

+0

谢谢。答案转到第一响应者身上,但我最终可能会因为简单而无法使用你。 –