在分页中有问题。获得警告:mysql_fetch_assoc()期望参数1是资源,给定布尔值 [英] Having problem in pagination. getting Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given

查看:92
本文介绍了在分页中有问题。获得警告:mysql_fetch_assoc()期望参数1是资源,给定布尔值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

html表单



html form

// This is the dynamic drop down menu
<form action="search.php" method="post">
<?php
$select_query = "Select distinct category from books";
$select_query_run = mysql_query($select_query);
$select_query_array = mysql_fetch_array($select_query_run) ;
$cat = $select_query_array['category'];
echo "<select name='name'>";
while ($select_query_array= mysql_fetch_array($select_query_run) )
{
echo "<option value='".htmlspecialchars($select_query_array["category"])."' >".htmlspecialchars($select_query_array["category"])."</option>";
}
echo "</select>";
?>
// search field with search button
<input type="text" name="searchvalue" size="5" id="searchfield" title="searchfield" onFocus="clearText(this)"/>
<input type="submit" name="submit" value="" alt="Search" id="searchbutton" title="Search" />
</form>





SEARCH.PHP



SEARCH.PHP

    <?php
    @session_start();
    include 'connections.php';
    $search = $_POST['searchvalue'];
    $name = $_POST['name'];
    if(strlen($search)<=1)
    {
    echo "Search term too short";
    }
    else{
    echo "You searched for $search <hr size='1'></br>";
    $construct = "SELECT * FROM books WHERE category = '$name' AND (title LIKE '%$search%' or author LIKE '%$search%')";
    $run = mysql_query($construct);
    $foundnum = mysql_num_rows($run);
    if ($foundnum==0)
    echo "Sorry, there are no matching result for $search.</br></br>1.";
    else
    {
    echo "$foundnum results found !<p>";
    }
    $per_page = 2;
    $start = $_GET['start'];// getting page number from url,
    $max_pages = ceil($foundnum / $per_page);
    if(!$start)
    $start=0;
     $offset = ($start- 1) * $per_page; //This offset not working properly
    $query_with_limit = $construct . ' LIMIT ' . mysql_real_escape_string($offset) .',' . mysql_real_escape_string($per_page);
$getquery = mysql_query($query_with_limit); 
    while($runrows = mysql_fetch_assoc($run)) // This while loop will prints search reasults,
    {
    echo '<div class="news_box">
    <a href="#">';
    if($runrows ['cover_page_img']=="")
    {
    echo '<img class="news_image" src="'.INDEX_URL.'images/book_open.jpg" alt="image" width="90" height="90"/>';
    }
    else{
    echo '<img class="news_image" src="'.INDEX_URL.'images/BookCoverImgs/'.$row['cover_page_img'].'" alt="image" width="90" height="90"/>';
    }
    echo '
    </a>
    <h3><a href="#">'.$runrows ['title'].'</a></h3>
    <p> '.substr($runrows ['edition'],0,150).'.......</p>
    <div class="more float_r"><a href="#">Read more</a></div>
    <div class="cleaner"></div>
    </div>';
    }
    $prev = $start - $per_page;
    $next = $start + $per_page;
    $adjacents = 3;
    $last = $max_pages - 1;
    if($max_pages > 1)
    {
    //previous button
    if (!($start<=0))
    echo " <a href='search.php?search=$search&submit&start=$prev'>Prev</a> ";
    //pages
    if ($max_pages < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
    {
    $i = 0;
    for ($counter = 1; $counter <= $max_pages; $counter++)
    {
    if ($i == $start){
    echo " <a href='search.php?search=$search&submit=$i'>$counter</a> ";
    }
    else {
    echo " <a href='search.php?search=$search&submit&start=$i'>$counter</a> ";
    }
    $i = $i + $per_page;
    }
    }
    elseif($max_pages > 5 + ($adjacents * 2)) //enough pages to hide some
    {
    //close to beginning; only hide later pages
    if(($start/$per_page) < 1 + ($adjacents * 2))
    {
    $i = 0;
    for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
    {
    if ($i == $start){
    echo " <a href='search.php?search=$search&submit=$i'>$counter</a> ";
    }
    else {
    echo " <a href='search.php?search=$search&submit=$i'>$counter</a> ";
    }
    $i = $i + $per_page;
    }
    }
    //in middle; hide some front and some back
    elseif($max_pages - ($adjacents * 2) > ($start / $per_page) && ($start / $per_page) > ($adjacents * 2))
    {
    echo " <a href='search.php?search=$search&submit=0'>1</a> ";
    echo " <a href='search.php?search=$search&submit&start=$per_page'>2</a> .... ";
    $i = $start;
    for ($counter = ($start/$per_page)+1; $counter < ($start / $per_page) + $adjacents + 2; $counter++)
    {
    if ($i == $start){
    echo " <a href='search.php?search=$search&submit&start=$i'>$counter</a> ";
    }
    else {
    echo " <a href='search.php?search=$search&submit&start=$i'>$counter</a> ";
    }
    $i = $i + $per_page;
    }
    }
    //close to end; only hide early pages
    else
    {
    echo " <a href='search.php?search=$search&submit=0'>1</a> ";
    echo " <a href='search.php?search=$search&submit&start=$per_page'>2</a> .... ";
    $i = $start;
    for ($counter = ($start / $per_page) + 1; $counter <= $max_pages; $counter++)
    {
    if ($i == $start){
    echo " <a href='search.php?search=$search&submit&start=$i'>$counter</a> ";
    }
    else {
    echo " <a href='search.php?search=$search&submit&start=$i'>$counter</a> ";
    }
    $i = $i + $per_page;
    }
    }
    }
    //next button
    if (!($start >=$foundnum-$per_page))
    echo " <a href='search.php?search=$search&submit=$next'>Next</a> ";
    }
    echo "</center>";
    }



我正在成功搜索RESUTLS,而且我每页仅设置两个记录它也工作精细但如果我有三个记录,则打印两个记录单页成功问题是如果我点击下一个按钮,则下一条记录不打印,打印总是搜索词太短。如果我使用mysql_real_escape_string($ offset)INSTEAD OFmysql_real_escape_string($ start)在SQL QUERY中,我正在发生错误,请任何人帮助我


I AM GETTING SEARCH RESUTLS SUCCESSFULLY, AND I SET ONLY TWO RECORDS PER PAGE IT'S ALSO WORKING FINE BUT IF I HAVE THREE RECORDS, PRINTING TWO RECORDS IN ONE PAGE SUCCESSFULLY PROBLEM IS THE NEXT RECORD IS NOT PRINTING IF I CLICK THE NEXT BUTTON, PRINTING ALWAYS "search term is too short". THIS IS HAPPENING ONLY WITHOUT "$offset" IF I USE "mysql_real_escape_string($offset)" INSTEAD OF "mysql_real_escape_string($start)" IN SQL QUERY, I AM GETTING ERROR, PLEASE ANYONE HELP ME

推荐答案

select_query = 从书籍中选择不同的类别;
select_query = "Select distinct category from books";


select_query_run = mysql_query(
select_query_run = mysql_query(


select_query);
select_query);


这篇关于在分页中有问题。获得警告:mysql_fetch_assoc()期望参数1是资源,给定布尔值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆