我对PHP编程比较陌生。我正在建立一个小的crud应用程序(待办事项列表),以准确练习。我正在努力充实用户界面,并测试信息在页面上的数据库中的显示方式。
当用户登录时,会显示他们已保存的所有项目的表格。
表列出项目
<div class="container">
<table class="table">
<tr>
<th>Completed</th>
<th>Description</th>
<th>Actions</th>
</tr>
<tr>
<td colspan="3"></td>
</tr>
<?php
$document_get = mysql_query("SELECT * FROM todolist WHERE user_id='$user_id' ORDER BY id DESC");
while($match_value = mysql_fetch_array($document_get)) {
?>
<tr>
<td>
Hi
</td>
</tr>
</table>
<?php
}
?>
</div>
php调用显示列表项
<?php
$document_get = mysql_query("SELECT * FROM todolist WHERE user_id='$user_id' ORDER BY id DESC");
while($match_value = mysql_fetch_array($document_get)) {
?>
此PHP请求下的任何内容都不会出现某些原因。我看过其他帖子,人们提到了同样的事情,但我没有看到任何与我的问题相符的具体内容。
答案 0 :(得分:0)
mysql_fetch_array
返回一个数组。你的while语句的结构不会有你想要的结果。 while循环将永远是真实的,因为while条件下没有任何变化。
这应该会更接近你想要的效果:
$document_get = mysql_query("SELECT * FROM todolist WHERE user_id='$user_id' ORDER BY id DESC");
$match_value = mysql_fetch_array($document_get);
foreach ($match_value as $value){
//Do something
}
作为旁注 - 我强烈建议使用PDO而不是将php与html串联。这里的教程:https://phpdelusions.net/pdo
如果您使用PDO,您的循环看起来会更像这样:
while($row = $st->fetch(PDO::FETCH_ASSOC)){
//Do something
}
答案 1 :(得分:0)
enter code here <?php
$document_get = mysql_query("SELECT * FROM todolist WHERE user_id='$user_id' ORDER BY id DESC");
while($match_value = mysql_fetch_array($document_get)) {
echo "
<tr>
<td>
Hi
</td>
</tr>
&#34 ;;
}
echo " </table>";
?>
使用echo在php中执行整个操作以显示表elemts和Hi。删除额外的PHP标签,以便循环和回显所有的PHP。另请参阅注释中提到的安全问题。顺便说一句,我在阅读问题下方的评论后将表格结束标记移到了循环外面。
答案 2 :(得分:0)
尝试更改您的查询:
$document_get = mysql_query("SELECT * FROM todolist WHERE user_id='$user_id' ORDER BY id DESC");
到
$document_get = mysql_query("SELECT * FROM todolist WHERE user_id='".$user_id."' ORDER BY id DESC");