使用PHP

时间:2016-08-18 11:54:20

标签: php mysql

我正在尝试从具有最高ID的数据库中选择一行,并将其回显到表格中的页面。

我可以手动运行查询并且它可以正常工作,但是当我尝试通过PHP动态执行时;这是行不通的。我的代码出了什么问题?

<?php               
    $sql_query = "SELECT * FROM single_user_orders ORDER BY order_id DESC LIMIT 1";
    $result = mysqli_query($dbconfig, $sql_query);
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC);
    $count = mysqli_num_rows($result);

    echo '<div class="row" style="margin-top: 30px;">';
        echo '<div class="col-md-12">';
            echo '<table class="table">';
            if($count > 1) {
                echo '<tr>';
                    echo '<th>Order ID</th>';
                    echo '<th>Status</th> ';
                    echo '<th>Order Total</th>';
                    echo '<th>Order Description</th>';
                echo '</tr>';
                while ($row = mysqli_fetch_array($result)) {
                    echo '<tr>';
                        echo '<td>'. $row['order_id'] .'</td>';
                        echo '<td>'. $row['status'] .'</td> ';
                        echo '<td>'. $row['order_total'] .'</td>';
                        echo '<td>'. $row['order_description'] .'</td>';
                    echo '</tr>';
                }
            }
            echo '</table>';
        echo '</div>';
    echo '</div>';
?>

6 个答案:

答案 0 :(得分:0)

只有在选择了多条记录时才显示表格。您的查询将返回最多一个结果,因此该表将永远不会显示。

使用if($count >= 1)代替if($count > 1)

请注意'更高或等于'表示法:>=

答案 1 :(得分:0)

看看

$sql_query = "SELECT * FROM single_user_orders ORDER BY order_id DESC LIMIT 1";

            if($count > 1) {

你总是只有一排。尝试改变条件

答案 2 :(得分:0)

使用此代码更新您的代码,因为有两个错误

1) count >= 1

2) while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {  //add MYSQLI_ASSOC

    }

答案 3 :(得分:0)

您的结果集只包含1行。 因此,mysqli_num_rows($ result)将在计数中返回1。所以你应该检查

if($count==1) {
...
}

答案 4 :(得分:0)

您正在使用while循环再次获取数据,因为无需再次获取数据,因为它已在开头使用$row = mysqli_fetch_array($result, MYSQLI_ASSOC);获取。

尝试以下

<?php
$sql_query = "SELECT * FROM single_user_orders ORDER BY order_id DESC LIMIT 1";
$result = mysqli_query($dbconfig, $sql_query);
$row = mysqli_fetch_assoc($result);
$count = mysqli_num_rows($result);

echo '<div class="row" style="margin-top: 30px;">';
echo '<div class="col-md-12">';
echo '<table class="table">';
if ($count >= 1)
{
    echo '<tr>';
    echo '<th>Order ID</th>';
    echo '<th>Status</th> ';
    echo '<th>Order Total</th>';
    echo '<th>Order Description</th>';
    echo '</tr>';
    // Removed while loop as data is already fetched
    // you just need to echo the values now
    echo '<tr>';
    echo '<td>' . $row['order_id'] . '</td>';
    echo '<td>' . $row['status'] . '</td> ';
    echo '<td>' . $row['order_total'] . '</td>';
    echo '<td>' . $row['order_description'] . '</td>';
    echo '</tr>';
}
echo '</table>';
echo '</div>';
echo '</div>';
?>
此处不需要

while循环,因为只使用LIMIT 1重试了一行。如果正在检索多行,那么while循环将为您完成。

答案 5 :(得分:0)

B

尝试一次或多次订单