繁体   English   中英

仅获取第一个条目php mysql

[英]Getting only first entry php mysql

我有一个mysqli表,其值如下:-

 id | price
  65| 7000
  67| 7001

和一个PHP代码使用数组变量来回显两者:

  require('setup.php'); // got connection
  $array = array(0 => 65, 1 => 67);
  $d = implode("," , $array);
  $sql = "SELECT price FROM trade WHERE id IN('$d')";
  $query = mysqli_query($conn, $sql);
  if($query){
     while ($row = mysqli_fetch_array($query)) {
     echo $row['price'].'<br>';
    }
  }
 else {
   echo mysqli_error($conn);
   }

输出应为

7000
7001

但是只有7000

删除IN()标记中多余的单引号。

更正的代码:

$sql = "SELECT price FROM trade WHERE id IN($d)";

$sql输出:

SELECT price FROM trade WHERE id IN(65,67)

您可以在此处检查代码:

传递带有引号的$d会使IN('65,66')在执行期间看起来像这样,因此您需要删除它,因为根据默认约定,您只需要传递一个数组。 因此,将查询更改为:

SELECT price FROM trade WHERE id IN($d)

在执行IN('65,67')需要执行IN(65,67) IN('65,67')

所以去除'围绕$d

代码必须是:-

$sql = "SELECT price FROM trade WHERE id IN($d)";

注意:-使用fetch_assoc()进行较轻的数组迭代(因为它仅提供关联数组结果集)

while ($row = mysqli_fetch_assoc($query)) {

工作片段-http : //rextester.com/FEFBWZ40805

如下编辑查询,

$sql = "SELECT price FROM trade WHERE id IN($d)";

希望这可以帮助。

请检查您的SQL查询

 $sql = "SELECT price FROM trade WHERE id IN('$d')";

请按如下所示更改此查询:

$sql = "SELECT price FROM trade WHERE id IN($d)";

您不应该在PHP变量中使用单引号。

尝试这样的事情:

require('setup.php'); 
$array = [65, 67];
$d     = implode(',', $array);
$sql   = "SELECT price FROM trade WHERE id IN($d)";
$query = mysqli_query($conn, $sql);
if($query){
    while ($row = mysqli_fetch_assoc($query)) {
        echo $row['price'].'<br>';
    }
}
else {
    echo mysqli_error($conn);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM