【发布时间】:2016-04-05 07:29:34
【问题描述】:
我尝试了几天解决这个问题,但仍然无法解决。我正在尝试使用mysqli_num_rows($result)>0 执行 if 语句,但它无法正常工作。这听起来很奇怪。如果result>0,它将显示记录(工作正常),否则不会显示任何记录(也工作正常)但表格继续显示。我不知道为什么(如果结果返回为空,则该表不应该出现)。另一个相关问题是,当没有记录时,似乎出现了 3 个值(图片列下没有图像值,Dat Reg 列下的日期,在终止会员资格栏下删除)。任何帮助将不胜感激。当结果返回为空时,我无法让“无图像值”、“日期”和“删除”消失。我正在尝试使整个表格不出现,以便列(也不会显示,但它无法工作)。
userpage.php
<p align="left">A. YOUR RECORDS </p>
<p align="left">
<?php
echo "<tr><td></tr></td>";
if(mysqli_num_rows($result)>0){
echo "<table cellpadding=10 border=0 id='secondtable'>";
echo "<tr><td bgcolor=#698C00 class='white'>"."Membership"."</td>".
"<td bgcolor=#698C00 class='white'>"."Title"."</td>".
"<td bgcolor=#698C00 class='white'>"."Location"."</td>".
"<td bgcolor=#698C00 class='white'>"."Phone"."</td>".
"<td bgcolor=#698C00 class='white'>"."Picture"."</td>".
"<td bgcolor=#698C00 class='white'>"."Date Reg"."</td>".
"<td bgcolor=#698C00 class='white'>"."Terminate Membership?"."</td></tr>";
if(mysqli_num_rows($result)>0){
while( $row = $result->fetch_array(MYSQLI_ASSOC)){
$showdateua=$row['dateua'];
$showdateua=date('d-m-Y',strtotime($showdateua));
echo "<tr><td bgcolor=#DCDCDC>".$_SESSION['Membership']=$row['Membership'].
"</td><td bgcolor=#DCDCDC>".$_SESSION['Title']=$row['Title'].
"</td><td bgcolor=#DCDCDC>".$_SESSION['location']=$row['location'].
"</td><td bgcolor=#DCDCDC>".$_SESSION['adphone']=$row['adphone'].
"</td><td bgcolor=#DCDCDC>".
'<img src="'.$_SESSION['image1']=$row['image1'].'"alt="No image"style="width:100px;height:100px;"/>'.
"</td><td bgcolor=#DCDCDC>".$_SESSION['dateua']=$showdateua.
"</td><td bgcolor=#DCDCDC>"."<a href=\"rundelup.php?idadv=".$row['idadv']."\">"."Delete"."</a></td></tr>";
}
}
echo "</table>";}
else
{
if(mysqli_num_rows($result)===0)
{echo "No records";}
}?>
<?php
if(isset($_SESSION['id'])){
if (isset($result)){
if(mysqli_num_rows($result)>0){
echo "<table>";
$page=(int)$page;
if($page>$tpages)
{$page=$tpages;}
if($page<1)
{$page=1;
}
if($page==1){
echo "";}
else
{
//go to first page
echo "<tr><td><a href='?page=1'class='button'>FIRST</a></td>";
}
if($page>1)
{
//go to previous page to show previous 3 items.
echo "<td><a href='?page=".($page-1)."'class='button'><<</a></td>";
}
echo "<ul class='page'>";
for($i=max($page-4,1);$i<=max(1,min($tpages,$page+4));$i++)
{
if($i==$page){
echo "<td><class='current'>".$i."</td>";
}
else{
echo "<td><a href='?page=".$i."'>".$i."</a></td>";}
//echo "<tr><td><a href=useradacc.php?page=".$i.">".$i."</a></td></tr>";
}
echo "</ul>";
if($page!=$tpages)
{
//go to next page to show next 3 items.
echo "<td><a href='?page=".($page+1)."'class='button'>>></a></td>";
}
if($page==$tpages)
{
echo "";}
else{
//go to last page
echo "<td><a href='?page=".($page=$tpages)."'class='button'>LAST</a></td></tr>";
}
echo "</table>";
}
}}
else
{echo "Insert record";
}
?>
包含文件 (run.php)
<?php
if(isset($conn)){
$id = $_SESSION['id'];
//pagination calculation
$reclimit=3;
if(isset($_GET['page'])){
$page=$_GET['page'];}
else
{
$page=1;
}
$start=(($page-1)*$reclimit);
$advert = "SELECT u.*,ua.* FROM uskkk u LEFT JOIN uaddd ua ON u.id=ua.id
WHERE u.id='".$id."'";
$result=$conn->query($advert);
$total=$result->num_rows;
$tpages=ceil($total/$reclimit);
//pagination script ends here
$advert = "SELECT u.*,ua.* FROM uskkk u LEFT JOIN uaddd ua ON u.id=ua.id
WHERE u.id='".$id."'ORDER BY dateua DESC LIMIT $start,$reclimit";
$statement = $conn->prepare($advert);
$statement->execute();
$result = $statement->get_result(); }
if ($conn->connect_error){
die("Connection failed: ".$conn->connect_error);
}
?>
【问题讨论】:
-
你正在混合程序和 OO mysqli 风格
-
感谢@Chay22 的回复。注意到......我认为两者都可以混合......?呵呵......谢谢你的提示......
-
我先试一试.. 因为很难区分程序和 OO mysqli 风格.. 对我来说看起来都一样..
-
@Chay22。我按照你的建议做了……但还是一样……有希望吗?
-
不过,这只是一个简单的通知。你不能像这样在
$statement上做准备好的声明。改用$conn->query()并使用$conn->fetch_assoc()获取结果