仅获取第一个条目php mysql

时间:2018-09-18 13:05:44

标签: 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

6 个答案:

答案 0 :(得分:1)

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

更正的代码:

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

$sql输出:

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

您可以检查代码here

答案 1 :(得分:1)

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

SELECT price FROM trade WHERE id IN($d)

答案 2 :(得分:1)

在执行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

答案 3 :(得分:1)

按如下所示编辑查询,

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

希望这会有所帮助。

答案 4 :(得分:1)

请检查您的SQL查询

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

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

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

您不应将单引号与php变量一起使用。

答案 5 :(得分:0)

尝试这样的事情:

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);
}