将PHP数组中的结果添加到要处理的每个Result的SQL Select中



我是个新手,所以我想知道我的要求是否可行。

我有一个SQl Select查询,它返回一个While循环,并将结果(人名(转换为php数组。

在下面同一页上的另一个SQL查询中,我需要使用SQL SELECT获取每个名称的地址。

我已经回显了json_encode($name_arr(,并看到了这三个名称,所以我知道我的名称数组在第一个SQL查询中可以工作。

我尝试过使用内爆((,但我得到了一个名称的结果,而不是所有三个名称,或者什么都没有。

谢谢你的帮助。

Array Result = 3 records found.
Array=
id Name
1   John
2   Mike
3   Jane
**Get names script**
$sql = "SELECT  names FROM directory WHERE  age = '33' ";
$result = $conn->query($sql);

if ($conn->query($sql) === FALSE) {
echo"error";
die();
} else if ($result->num_rows > 0) {
while($row = $result->fetch_array()) {
$name =  "".  $row['name']."";
$name_arr = array(  "name"  => $name);
}} 
**Get address script**
$sql = "SELECT * FROM address WHERE name IN ('".implode("','",$name_arr "') ";
$result = $conn->query($sql);
//Check if it failed to do above
if ($conn->query($sql) === FALSE) {
echo"error";
die();
} else if ($result->num_rows > 0) {
while($row = $result->fetch_array()) {

$street =    "".  $row['street']."";
$postcode =  "".  $row['postcode']."";
$city =      "".  $row['city']."";
$address_arr[] = array(

"street"    => $street,
"postcode"  => $postcode,
"city"      => $city);
}

echo json_encode($address_arr);
exit();
} 

您可以将其放在一个查询中以获得所有信息,如:

SELECT  ad.*
FROM directory d 
LEFT JOIN address ad ON ad.name = d.name 
WHERE  d.age = '33' ";

最新更新