无法显示来自数据库php的数据

时间:2016-06-10 07:32:45

标签: php

我正在开发一个php项目,我在从数据库打印数据时遇到问题。 连接正常,打印空表但是在打印数据时,没有显示任何内容。我目前的代码:

 <?php


  $con = mysqli_connect('localhost','root','root', 'db'); 

  $user = $_SESSION['sess_user'];


  $query=("SELECT * FROM urls WHERE owner = '".$user."'");

  $qry_result = mysqli_query($con,$query);

  $display_string = "<table>";
  $display_string .= "<tr>";
  $display_string .= "<th> Id</th>";
  $display_string .= "<th> Url</th>";
  $display_string .= "<th> Owner </th>";
  $display_string .= "<th> SharingUrls </th>";
  $display_string .= "</tr>";

 while($row = mysqli_fetch_array($qry_result)) {//doesn't enter in this loop
    echo 'sdf';  //?? nothing
    $display_string .= "<tr>";
      $display_string .= "<td>$row[id]</td>";
      $display_string .= "<td>$row[url]</td>";
      $display_string .= "<td>$row[owner]</td>";
      $display_string .= "<td>$row[sharingUsers]</td>";

      $display_string .= "</tr>";
  }

  $display_string .= "</table>";

  echo $display_string;


?>

可能是什么问题?

4 个答案:

答案 0 :(得分:2)

您遗失session_start()
这意味着您的$user未定义。这就是为什么没有数据被提取的原因。

答案 1 :(得分:0)

在页面顶部写下session_start(),以允许会话在该页面上运行。然后尝试打印echo $user = $_SESSION['sess_user'];

的值

获得该值后,它应该从数据库中获取数据。或者,您可以打印sql语句以检查变量$user是否具有该值。

echo $query=("SELECT * FROM urls WHERE owner = '".$user."'");

希望这会有所帮助。

答案 2 :(得分:0)

首先检查$ user值是否设置正确。然后,如果它有任何特殊字符,您可以使用mysqli_real_escape_string。 在表格中,$ row [id]应为$ row [&#39; id&#39;]。我不明白你为什么要创建一个字符串。 你可以简单地在你的html代码中添加这样的表格。

<table>
    <thead>
    <tr>
        <th>id</th>
        <th>url</th>
        <th>owner</th>
        <th>sharingusers</th>
    </tr>
    </thead>
    <tbody>
    <?php
    if(isset($qry_result ) && !empty($qry_result )){
        while($row = $qry_result->fetch_assoc()){
            echo "
        <tr>
        <td>{$row['id']}</td>
        <td>{$row['url']}</td>
        <td>{$row['owner']}</td>
        <td>{$row['sharingusers']}</td>
        </tr>\n";
        }
    }
    ?>
    </tbody>
</table>

答案 3 :(得分:0)

您好,您尚未在此页面中启动session。 我们必须在我们想要使用会话值的每个页面上启动session_start。在显示任何内容之前,应在页面顶部启动Session。第二,请查看您的$user是否有价值,并添加mysqli_error()以检查查询是否有error。所以添加此

$qry_result = mysqli_query($con,$query) or print_r(mysqli_error($con));

请更改此行

$display_string .= "<td>$row[id]</td>";

$display_string .= "<td>".$row['id']."</td>";

这应该在所有其他行中完成