Php 准备专用消息系统
我正在准备一个私人信息系统 现在的问题是,它只会显示一个,即使数据库中有4个 我希望它一次显示全部4个,而不仅仅是其中一个 从这里可以看出问题所在Php 准备专用消息系统,php,mysqli,Php,Mysqli,我正在准备一个私人信息系统 现在的问题是,它只会显示一个,即使数据库中有4个 我希望它一次显示全部4个,而不仅仅是其中一个 从这里可以看出问题所在 $sql=“选择id、title、datoTime、checkpm FROM pm WHERE til=?ORDER BY datoTime DESC”; 如果($stmt=$this->mysqli->prepare($sql)) { $stmt->bind_参数('i',$til); $til=$_GET[“id”]; $stmt->execu
$sql=“选择id、title、datoTime、checkpm FROM pm WHERE til=?ORDER BY datoTime DESC”;
如果($stmt=$this->mysqli->prepare($sql))
{
$stmt->bind_参数('i',$til);
$til=$_GET[“id”];
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id、$title、$datoTime、$checkpm);
$stmt->fetch();
$count=$stmt->num\u行;
$stmt->close();
如果($count>=1)
{
?>
Slet
因根围困
此时,您读取一行,然后关闭结果
您需要一次循环读取和处理一行结果,然后只在完成后关闭结果。您使用fetch而不是fetchAll,而且您似乎没有在结果中循环,因此我必须循环它才能工作?是的,否则您只返回最后一个结果。还可以使用$result->fetch\u assoc()代替fetch.Look here@LiamSorsby我已经尝试过了,它现在对我有效:(更新你的代码,让我们看看?你认为我可以怎么做?),看看本页上的一些示例:
$sql = "SELECT id, title, datoTime, checkpm FROM pm WHERE til=? ORDER BY datoTime DESC";
if ($stmt = $this->mysqli->prepare($sql))
{
$stmt->bind_param('i', $til);
$til = $_GET["id"];
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id, $title, $datoTime, $checkpm);
$stmt->fetch();
$count = $stmt->num_rows;
$stmt->close();
if($count >= 1)
{
?>
<tr>
<td><img src="/img/besked/reply.png" alt="svar" id="beskedu"></td>
<td><a href="/pm-set/<?php echo $id;?>/"><?php echo $title;?></a></td>
<td>
<?php
if($checkpm == 0)
{
?>
<a href="/pm-set/<?php echo $id;?>/"><img src="/img/besked/ulase.png" alt="ulæst" id="beskedu"></a>
<?php
}
else
{
?>
<a href="/pm-set/<?php echo $id;?>/"><img src="/img/besked/lase.png" alt="læst" id="beskedu"></a>
<?php
}
?>
</td>
<td><?php echo date("H:i - d, M - Y", strtotime($datoTime));?></td>
<td>Slet</td>
</tr>
<?php
}
else
{
?>
<div id="error"><p>Ingen besked</p></div>
<?php
}
}
else
{
echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
}