【问题标题】:Return multiple rows with mysqli用 mysqli 返回多行
【发布时间】:2014-08-12 11:23:31
【问题描述】:

我正在学习 mysqli,我正在尝试查询数据库并返回多行。我知道必须使用循环来返回多行,但我不知道如何在我的代码中实现它。非常感谢您提供帮助。

$query2 = mysqli_query($con,"SELECT * FROM journeys WHERE id = $id");
$count = mysqli_num_rows($query2);

if ($count == 0) {
    $journeys = 'You have no future journeys.';
} else {
    while ( $row = mysqli_fetch_assoc($query2) ) {      
        $from = $row ['origin'];
        $to = $row ['destination'];
        $date = $row ['date'];
        $hour = $row ['hour'];
        $minute = $row ['minute'];
        $journeyid = $row ['journeyid'];

【问题讨论】:

  • 在发布问题之前,请先做一些调查。一个简单的谷歌搜索给我带来了很多可能的解决方案。 google.com.pk/…此外,关于如何提出问题的stackoverflow指南stackoverflow.com/help/how-to-ask
  • 在 Internet 上查找一些 PHP mysqli 示例。 There are literally hundreds 在那里。
  • 通常当您使用 ID 列时,您这样做是为了从其他条目中识别出唯一的数据行。所以我假设您的查询只返回一行的原因是因为确实只有一个条目与您的查询匹配。

标签: php mysqli


【解决方案1】:

试试这个代码

    <?php

$con=  mysqli_connect('localhost', 'root', '', 'your data base name');
$query2 = mysqli_query($con,"SELECT * FROM journeys where id=$id");
$count = mysqli_num_rows($query2);

if ($count == 0) {
    $journeys = 'You have no future journeys.';
    echo $journeys;
} else {
    while ( $row = mysqli_fetch_assoc($query2) ) {      
        $from = $row ['origin'];
        $to = $row ['destination'];
        $date = $row ['date'];
        $hour = $row ['our'];
        $minute = $row ['minute'];
        $journeyid =$row ['journeyid'];

        echo $from.'<br>';

    }
}

看看这一行 echo $from;这将显示您在数据库的原始列中拥有的内容,如果您想显示目的地,也可以使用它 echo $to; 意味着你想要显示的内容就像这样 echo $variableName;它将显示结果;

在你显示结果之前它只会存储它,不会显示它,

看看我也改变了你的这行代码

这是你的代码

if ($count == 0) {
    $journeys = 'You have no future journeys.';
    echo $journeys;// i added this line

我添加了一行,因为你在这里说的是如果 $count 等于 0,那么 $journeys='you have no future travels';但是你没有使用 echo 你必须使用 echo 来显示结果。

如果您仍然有一些困惑,请再次询问,并尝试谷歌

【讨论】:

    【解决方案2】:
    $query2 = mysqli_query($con,"SELECT * FROM journeys WHERE id = $id");
    $row = mysql_fetch_array($query2);
    $count = count($row);
    
    if(intval($count)>0)
      {
    
        for($i = 0; $i<$count; $i++)
            {
               $from[$i] = $row[$i]['origin'];
                     -------------------------------
                     ----------------------
            }
      }
    

    【讨论】:

    • 在 mysqli 结果集上使用 count() 不会产生预期的输出
    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 2016-05-17
    • 2011-07-29
    • 2012-11-19
    相关资源
    最近更新 更多