Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP数组中的结果添加到要处理的每个结果的SQL Select中_Php_Mysql_Arrays - Fatal编程技术网

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

将PHP数组中的结果添加到要处理的每个结果的SQL Select中,php,mysql,arrays,Php,Mysql,Arrays,我是个新手,所以我想知道我所问的是否可行 我有一个返回While循环的sqlselect查询,并将结果(人名)转换为php数组 在同一页上它下面的另一个SQL查询中,我需要使用SQL SELECT获取每个名称的地址 我回显了json编码($name\u arr)并查看了所有三个名称,因此我知道我的名称数组在第一个SQL查询中起作用 我尝试过使用infrade(),但我得到了一个名称的结果,而不是所有三个名称,或者什么都没有 谢谢你的帮助 Array Result = 3 records foun

我是个新手,所以我想知道我所问的是否可行

我有一个返回While循环的sqlselect查询,并将结果(人名)转换为php数组

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

我回显了json编码($name\u arr)并查看了所有三个名称,因此我知道我的名称数组在第一个SQL查询中起作用

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

谢谢你的帮助

Array Result = 3 records found.
Array=
id Name
1   John
2   Mike
3   Jane

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

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

警告:当使用
mysqli
时,您应该使用和向查询中添加任何数据。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将
$\u POST
$\u GET
或任何类型的数据直接放入查询中,如果有人试图利用您的错误,这可能非常有害。感谢您不要发布或上线。我将使用PDO的代码将改变。对你使用PDO很好。在实践中会更好。您只需使用SQL中的联接,就可以通过一个查询完成这一切。谢谢Bernd Buffen。我相信你的回答会让很多像我这样的新手受益
**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' ";