我正在完成一个搜索页面,显示它在我的数据库中找到的搜索结果。现在,我想显示它找到了多少。
为了做到这一点,我把一个计数器放在每次显示搜索结果时变大。问题是我不知道如何显示它发现了多少结果 BEFORE 它实际显示我的搜索结果,考虑到我只能在php计算我的搜索结果后才能回显计数器。 / p>
以下是我的代码的样子:
if(isset($_POST['caut']) && !empty($_POST['caut']))
{
$ok1=0;
$ok2=0;
$count1=0;
$count2=0;
$text=$_POST['caut'];
$sql="select * from news where content like '%".$text."%' or title like '%".$text."%' order by date desc";
$result=mysql_query($sql)or die("Unsuccessful".mysql_error());
#search results displaying start
while($getNews = mysql_fetch_object($result)){
$ok1=1;
$count1++;
$title = $getNews->title;
$authorPost = mysql_fetch_array(mysql_query("SELECT * FROM account WHERE id='$getNews->author'"));
?>
<div class="news">
<a href="index.php?s=news_page&post=<?php echo $getNews->id; ?>" target="_blank"><?php echo truncatetext($title, 81); ?></a>
<?php
if (has_rights($rights['add_news'])){
echo '<a href="index.php?s=user_panel&a=news&delete='.$getNews->id.'"><div id="delete-button"></div></a>';
echo '<a href="index.php?s=user_panel&a=news&edit='.$getNews->id.'"><div id="edit-button"></div></a>';
}
?>
<p>
<div class="news-author">By <a href="index.php?s=user&id=<?php echo $authorPost['id']; ?>"><?php echo $authorPost['real_name']; ?></a></div>
<div class="news-date"><img src="images/calendar-icon.png">On <?php echo $getNews->date; ?></div>
</p>
</div>
<div style="height: 1px; background-color: #cecece; margin-top: 10px; margin-bottom: 0px;"></div>
<?php
}
$sql1="select * from events where content like '%".$text."%' order by date desc";
$result1=mysql_query($sql1)or die("Unsuccessful".mysql_error());
while($getEvents = mysql_fetch_object($result1)){
$ok2= 1;
$count2++;
$title = $getEvents->title;
$authorPost = mysql_fetch_array(mysql_query("SELECT * FROM account WHERE id='$getEvents->author'"));
?>
<div class="news">
<div class="event-date" align="center">
<div class="event-day"><?php echo $getEvents->event_day; ?></div>
<div class="event-month"><?php echo $getEvents->event_month.'.'.$getEvents->event_year; ?></div>
</div>
<a href="index.php?s=events_page&post=<?php echo $getEvents->id; ?>"><?php echo truncatetext($title, 36); ?></a>
<?php
if (has_rights($rights['add_news'])){
echo '<a href="index.php?s=user_panel&a=events&delete='.$getEvents->id.'"><div id="delete-button"></div></a>';
echo '<a href="index.php?s=user_panel&a=events&edit='.$getEvents->id.'"><div id="edit-button"></div></a>';
}
?>
</div>
#search results displaying end
<?php
}
#I want the following TWO lines showed BEFORE my search results are being displayed
$nr_rez= $count1 + $count2;
echo '<br><br><div class="info">Found '.$nr_rez.' results matching "'.$text.'".</div>';
if($ok1==0 && $ok2==0)
echo '<div class="error">No results found with that keyword.</div>';
}
这可以吗?
答案 0 :(得分:1)
当然,请使用mysql_num_rows()
:http://php.net/manual/en/function.mysql-num-rows.php
此外,我会切换到mysqli
,因为mysql
很快就会死亡。
并且从不直接使用任何用户输入而不对其进行清理(例如您的$_POST['caut']
)。 Google为'sql注入'。