我需要从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>';
}
}
住宿地址是强制性的,邮政地址对所有用户都是可选的。因此,此查询的输出可能是一行或两行。
如何为这两个地址创建两个数组?
答案 0 :(得分:0)
你应该非常接近。您的“while”循环将遍历结果集中的任何和所有记录。因此,如果返回了2条记录(1表示物理地址,1表示P.O. Box地址),它将同时运行。 (如果只有1条记录,请不要担心;如果是这样,它只会返回1并且只能通过该循环一次。)
看起来“address_type”列可能表明该地址是物理地址还是邮局地址。如果是这样,只需使用IF语句检查“$ address_type”,然后回显相应的输出(或ELSE另一个)。
您可能还希望按address_type对记录进行排序(首先显示物理地址)。如果是这样,只需在该SQL语句的末尾添加“ORDER BY address_type”。