【问题标题】:Php mysqli query with array [duplicate]带有数组的php mysqli查询[重复]
【发布时间】:2020-07-28 10:44:58
【问题描述】:

我有带有用户的数据库,我想在没有用户的情况下显示我在数组中有 id 的结果。 我该怎么做,有什么想法吗?

<?php
include_once "dbh.php";
session_start();
$id = $_SESSION['userId'];

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<?php
$noid = array("8","9","10");
$sql = "SELECT * FROM users WHERE idUsers != '$noid' ORDER BY RAND() LIMIT 1; ";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result); 
if ($resultCheck> 0){
$row = mysqli_fetch_assoc($result);
echo $row['nick'];
}

?>

</body>
</html>

【问题讨论】:

  • SELECT * FROM users WHERE idUsers NOT IN(8,9,10) ORDER BY RAND() LIMIT 1;
  • 有没有办法在数组中做,bcs这个数组会自动展开
  • 您尝试过什么调试问题?此外,请注意此代码对 SQL 注入开放

标签: php arrays mysqli


【解决方案1】:

你可以使用not in

"SELECT * FROM users WHERE idUsers not in(" . join(",",$noid) . ") ORDER BY RAND() LIMIT 1; "

【讨论】:

    【解决方案2】:

    您的查询应该是:

    'SELECT * FROM users WHERE id NOT IN (' . implode(',', $noid) . ')'; 
    

    如果你有 'LIMIT 1' ,你只会得到一个结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 2018-05-19
      • 1970-01-01
      • 2013-12-28
      • 2015-11-07
      • 2016-11-30
      • 1970-01-01
      相关资源
      最近更新 更多