php - 有数据时从 php/mysqli 查询中获取不到结果行/字段

标签 php mysql

问题的解释是:

  • 查询sql在运行时返回6行数据(每行14个字段) phpMyAdmin
  • 在 php 页面上 mysqli_num_rows 返回:6
  • print_r($sql_res) 返回: mysqli_result 对象 ( [current_field] => 0 [field_count] => 14 [lengths] => [num_rows] => 6 [type] = > 0 )
  • var_dump($sql_res) 返回:object(mysqli_result)#1 (5) { ["current_field"]=> int(0) ["field_count"]=> int( 14) ["长度"]=> NULL ["num_rows"]=> int(6) ["type"]=> int(0)

数据库中有数据,但没有被解析到表结构中,因为没有返回包含字段值的数据。任何帮助或指示将不胜感激。 数据库连接正常,我的其他页面正在工作,我在查询中使用 session 变量($selected 和 $selfair),我的令人头痛的 php 代码是:

<?php
$sql = "SELECT har_id, har_fair_id, har_kat_id, har_tarih, har_co_id, har_desc, har_docno, har_kur, har_debit, har_credit, har_used, har_invoiced, har_cancelled, har_schid FROM hareketler WHERE har_co_id =". $selected." AND har_fair_id =". $selfair;
echo $sql."<br><br>";
//sql returns correct statement
$sql_res = mysqli_query($con, $sql);
print_r($sql_res)."<br><br>";
echo "<br><br>".mysqli_num_rows($sql_res);
// row count is 6 but no other data is fetched from db!
echo "<br><br>".var_dump($sql_res);
while($row = mysqli_fetch_array($sql_res,MYSQLI_ASSOC));{
// detail rows are NOT fetched!
    if($row<>''){
    echo '<tbody>';
        echo '<tr>';
            echo '<td class="katdata">'.$row['har_id'].'</td>';
            echo '<td class="katdata">'.$row['har_fair_id'].'</td>';
            echo '<td class="katdata">'.$row['har_kat_id'].'</td>';
            echo '<td class="katdata">'.$row['har_tarih'].'</td>';
            echo '<td class="katdata">'.$row['har_co_id'].'</td>';
            echo '<td class="katdata">'.$row['har_desc'].'</td>';
            echo '<td class="katdata">'.$row['har_docno'].'</td>';
            echo '<td class="katdata">'.$row['har_kur'].'</td>';
            echo '<td class="katdata">'.$row['har_debit'].'</td>';
            echo '<td class="katdata">'.$row['har_credit'].'</td>';
            echo '<td class="katdata">'.$row['har_used'].'</td>';
            echo '<td class="katdata">'.$row['har_invoiced'].'</td>';
            echo '<td class="katdata">'.$row['har_cancelled'].'</td>';
            echo '<td class="katdata">'.$row['har_schid'].'</td>';
        echo '</tr>';
    echo '</tbody>';
    }
    else {
        echo "<br><br>No data returned!";
        // sql is correct but no detail data is fetched!
    }
}
?>

最佳答案

您有一个拼写错误:

while($row = mysqli_fetch_array($sql_res,MYSQLI_ASSOC));{

应该是

while($row = mysqli_fetch_array($sql_res,MYSQLI_ASSOC)){

关于php - 有数据时从 php/mysqli 查询中获取不到结果行/字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52534562/

相关文章:

php - 如何使用 cli 启用 php5-redis?

php - 将复杂查询分解为 MYSQL 中的临时表

php - 如何在 CI 中的非对象上获取 num_rows()

MySQL:多重选择,多重连接?

php - 使用 SQL 和 PHP 从不同表中搜索数据

php - 将 Android 应用程序与 php 和 mysql 连接

php - anchor 在列内对齐

php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

MySQL连接问题

php - 提示的 MySQL 查询