我正在开发一个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;
?>
可能是什么问题?
答案 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>";
这应该在所有其他行中完成