如何在php中创建这两个数组?

时间:2015-11-17 03:42:42

标签: php mysql arrays

我需要从mysql select查询创建两个数组。一个用于住宅地址,另一个用于邮寄地址。

这是我的选择查询:

$prep_query = "SELECT address_type
                    , street_no
                    , street_name
                    , city
                FROM  addresses
                WHERE user_id = ?";                          
$stmt = $mysqli->prepare($prep_query);
if ($stmt) {
    $stmt->bind_param('i', $user_id);  
    $stmt->execute();    
    $stmt->store_result();  
    $stmt->bind_result( $address_type
                      , $street_no
                      , $street_name
                      , $city
                      );
    while($row = $stmt->fetch()) {      
        //echo '<pre>',print_r($row[$street_name]).'</pre>';
    }
}

住宿地址是强制性的,邮政地址对所有用户都是可选的。因此,此查询的输出可能是一行或两行。

如何为这两个地址创建两个数组?

1 个答案:

答案 0 :(得分:0)

你应该非常接近。您的“while”循环将遍历结果集中的任何和所有记录。因此,如果返回了2条记录(1表示物理地址,1表示P.O. Box地址),它将同时运行。 (如果只有1条记录,请不要担心;如果是这样,它只会返回1并且只能通过该循环一次。)

看起来“address_type”列可能表明该地址是物理地址还是邮局地址。如果是这样,只需使用IF语句检查“$ address_type”,然后回显相应的输出(或ELSE另一个)。

您可能还希望按address_type对记录进行排序(首先显示物理地址)。如果是这样,只需在该SQL语句的末尾添加“ORDER BY address_type”。