PHP

可能重复:
mysql_fetch_array()期望参数1是资源,布尔在select中给出
警告:mysql_fetch_ *期望参数1是资源,布尔给定错误

我试图从表中选择数据,但得到这个错误信息!

mysql_fetch_array()期望参数1是资源,布尔在select中给出

我实际上在php中使用分页...但它对于更简单的查询很好,只有WHERE中只有一个条件...但是这里...有多个条件,它不起作用完整的代码是:

<?php
    /*
        Place code to connect to your DB here.
    */
$con=mysql_connect("localhost","root","password");
if(!$con)
{
    die('could not connect:'.mysql_error());
}
mysql_select_db("database",$con);
    //$page=1;  // initialise page
    $tbl_name="posts";      //your table name
    // How many adjacent pages should be shown on each side?
    $adjacents = 3;
    $query = $_GET['query']; 
    $query = htmlspecialchars($query); 
    $query = mysql_real_escape_string($query);
    /* 
       First get total number of rows in data table. 
       If you have a WHERE clause in your query, make sure you mirror it here.
    */
    $query = "SELECT COUNT(*) as num FROM posts WHERE status='active' AND ((title LIKE '%".$query."%') OR (content LIKE '%".$query."%'))";
    $total_pages = mysql_fetch_array(mysql_query($query));
    $total_pages = $total_pages['num'];

    /* Setup vars for query. */
    $targetpage = "index.php";  //your file name  (the name of this file)
    $limit = 20;                    //how many items to show per page
    /*if($_GET['page']="")
    {
        $page=2;
    }
    else
    {
        $page = $_GET['page'];
    }*/
    if(empty($_GET['page']))
    {
    $page=1;
    }
    else
    {
    $page = $_GET['page'];
    }
    if($page) 
        $start = ($page - 1) * $limit;          //first item to display on this page
    else
        $start = 0;                             //if no page var is given, set start to 0

    /* Get data. */
    $sql = "SELECT*FROM $tbl_name WHERE status='active' AND ((title LIKE '%".$query."%') OR (content LIKE '%".$query."%')) ORDER BY postid DESC LIMIT $start, $limit";
    $result = mysql_query($sql);

    /* Setup page vars for display. */
    if ($page == 0) $page = 1;                  //if no page var is given, default to 1.
    $prev = $page - 1;                          //previous page is page - 1
    $next = $page + 1;                          //next page is page + 1
    $lastpage = ceil($total_pages/$limit);      //lastpage is = total pages / items per page, rounded up.
    $lpm1 = $lastpage - 1;                      //last page minus 1

    /* 
        Now we apply our rules and draw the pagination object. 
        We're actually saving the code to a variable in case we want to draw it more than once.
    */
    $pagination = "";
    if($lastpage > 1)
    {   
        $pagination .= "<div class="pagination">";
        //previous button
        if ($page > 1) 
            $pagination.= "<a href="$targetpage?page=$prev">previous</a>";
        else
            $pagination.= "<span class="disabled">previous</span>";   

        //pages 
        if ($lastpage < 7 + ($adjacents * 2))   //not enough pages to bother breaking it up
        {   
            for ($counter = 1; $counter <= $lastpage; $counter++)
            {
                if ($counter == $page)
                    $pagination.= "<span class="current">$counter</span>";
                else
                    $pagination.= "<a href="$targetpage?page=$counter">$counter</a>";                 
            }
        }
        elseif($lastpage > 5 + ($adjacents * 2))    //enough pages to hide some
        {
            //close to beginning; only hide later pages
            if($page < 1 + ($adjacents * 2))        
            {
                for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<span class="current">$counter</span>";
                    else
                        $pagination.= "<a href="$targetpage?page=$counter">$counter</a>";                 
                }
                $pagination.= "...";
                $pagination.= "<a href="$targetpage?page=$lpm1">$lpm1</a>";
                $pagination.= "<a href="$targetpage?page=$lastpage">$lastpage</a>";       
            }
            //in middle; hide some front and some back
            elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
            {
                $pagination.= "<a href="$targetpage?page=1">1</a>";
                $pagination.= "<a href="$targetpage?page=2">2</a>";
                $pagination.= "...";
                for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<span class="current">$counter</span>";
                    else
                        $pagination.= "<a href="$targetpage?page=$counter">$counter</a>";                 
                }
                $pagination.= "...";
                $pagination.= "<a href="$targetpage?page=$lpm1">$lpm1</a>";
                $pagination.= "<a href="$targetpage?page=$lastpage">$lastpage</a>";       
            }
            //close to end; only hide early pages
            else
            {
                $pagination.= "<a href="$targetpage?page=1">1</a>";
                $pagination.= "<a href="$targetpage?page=2">2</a>";
                $pagination.= "...";
                for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<span class="current">$counter</span>";
                    else
                        $pagination.= "<a href="$targetpage?page=$counter">$counter</a>";                 
                }
            }

        }

        //next button
        if ($page < $counter - 1) 
            $pagination.= "<a href="$targetpage?page=$next">next</a>";
        else
            $pagination.= "<span class="disabled">next</span>";
        $pagination.= "</div>n";       
    }
?>

    <?php
        while($row = mysql_fetch_array($result))
          {

        echo '<br><h3><a href="post.php?postid='.$row['postid'].'">'.$row['title'].'</a></h3>';
        echo "<font size=4><br>".substr($row['content'], 0,300)."...   </font>";
        echo '<a href="post.php?postid='.$row['postid'].'">More details</a><br>';

        }
    ?>

<?=$pagination?>

有什么问题?


mysql_query失败时返回FALSE


不知道错误在哪里,但你可以尝试做的事情是这样的:

$sQuery_select_stuff = " SELECT * FROM stuff WHERE stuff_id = 1";
$rResultaat_select_stuff = mysql_query($sQuery_select_stuff) or die(mysql_error());
$total_pages = mysql_fetch_array($rResultaat_select_stuff);

回声你的$查询变量,看看它是否你期望它

$query = $_GET['query']; 
$query = htmlspecialchars($query); 
$query = mysql_real_escape_string($query);
echo $query;
链接地址: http://www.djcxy.com/p/69411.html

上一篇: php

下一篇: MySQL query problem