php - 如何在 sql 语句中使用 sql 数据库中的数组

标签 php mysql arrays

我可能完全走错了方向,但我想从数据库中获取一组数据,然后在另一个 SQL 语句中使用该数组。

这是我当前的代码:

  $result = mysql_query($query_friend_club_count) or die(mysql_error());

  while($row = mysql_fetch_array($result)){
  $row['idPerson']. " - ". $row['idFriend'];
  $idFriend = $row['idFriend'];
  $array = $idFriend',';

  $query_friends = "SELECT * FROM whosout WHERE idPerson IN ('$array')";
  $query_friends_run = mysql_query($query_friends);
  $friendCounter = mysql_num_rows($query_friends_run);

  echo $friendCounter;
  } 

我收到以下错误:

syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

不知道有没有用。

任何建议都会非常有帮助,因为我已经坚持了很长时间!!

最佳答案

您也可以先将它们分组,而不是逐一查询:

$array = array();
while($row = mysql_fetch_array($result)){
    $array[] = mysql_escape_string($row['idFriend']); // escape just to be sure
}

$array = "'".implode("','", $array) . "'"; // comma separated values

$query_friends = "SELECT * FROM whosout WHERE idPerson IN ($array)";
$query_friends_run = mysql_query($query_friends);
$friendCounter = mysql_num_rows($query_friends_run);
echo $friendCounter;

或者如果此列是 INT,则不需要引号:

$array = implode(', ', $array);

关于php - 如何在 sql 语句中使用 sql 数据库中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26123852/

相关文章:

c - 如何从文本文件中读取值并将它们存储在两个不同的数组中?

php - SQL 使用从另一个表获取的数组从一个表中选择行

php - 为什么 PHP/Laravel 不增加这个值?

php - 如何查找某个值在记录中出现的最高次数?

php - 使用拖放更新数据顺序

php - 每天用mysql表中的内容邮寄用户信息

php - 从 url 中删除 id

php - 尝试调整缩略图的大小和裁剪图像

java - 在准备好的语句中搜索字符串

C - 如何将数组结构指向变量?