-1

当我添加 php 分页并转到此链接 /index.php?page=memberlist 时,我收到此错误:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/a4398909/public_html/memberlist.php on line 312 

但是当我去 memberlist.php 它工作正常。所以我不知道出了什么问题,这是我的代码:

        <?php
/*
    Place code to connect to your DB here.
*/
    // include your code to connect to DB.

$tbl_name="users";      //your table name
// How many adjacent pages should be shown on each side?
$adjacents = 3;

/* 
   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 $tbl_name";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages['num'];

/* Setup vars for query. */
$targetpage = "/index.php?page=memberlist";     //your file name  (the name of this file)
$limit = 2;                                 //how many items to show per page
$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 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_num=$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_num=$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_num=$counter\">$counter</a>";                 
            }
            $pagination.= "...";
            $pagination.= "<a href=\"$targetpage&page_num=$lpm1\">$lpm1</a>";
            $pagination.= "<a href=\"$targetpage&page_num=$lastpage\">$lastpage</a>";       
        }
        //in middle; hide some front and some back
        elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
        {
            $pagination.= "<a href=\"$targetpage&page_num=1\">1</a>";
            $pagination.= "<a href=\"$targetpage&page_num=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_num=$counter\">$counter</a>";                 
            }
            $pagination.= "...";
            $pagination.= "<a href=\"$targetpage&page_num=$lpm1\">$lpm1</a>";
            $pagination.= "<a href=\"$targetpage&page_num=$lastpage\">$lastpage</a>";       
        }
        //close to end; only hide early pages
        else
        {
            $pagination.= "<a href=\"$targetpage&page_num=1\">1</a>";
            $pagination.= "<a href=\"$targetpage&page_num=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_num=$counter\">$counter</a>";                 
            }
        }
    }

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

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

         <div style="float: left; width: 300px; margin-left: 11px; margin-top: 10px; margin-bottom: 10px; border: 1px solid #CCC; border-radius:7px; background-color:#666;padding:5px 5px 5px 5px;">
<div id="memberlist_top">
    <div id="memberlist_avatar">
        <img src="<?php echo $row['avatar'] ?>" style="border: 1px solid #CBCBCB; padding: 3px; width: 100px; height: 100px;" />
    </div>
    <div id="memberlist_top_right">
        <p id="memberlist_username"><a href="/index.php?page=user&id=<?php echo $row['user_id'] ?>"><?php echo $row['user_name'] ?></a></p>
        <p style="text-align: center;"><img src="<?php echo$row['site_rank_image']?>"</p>
        <p style="text-align: center;" id="ml_rep"> Reputation: 0 </p>
        <p id="ml_posts">Post count: <?php echo $row['post'] ?></p>
    </div>
    <div class="clearfix" style="height: 5px;">&nbsp;</div>
</div>
<div id="memberlist_bottom">
    <p id="ml_bottom_p"><img src="template/images/layout/icon.png" style="vertical-align: middle" /> Date Registered: <span id="ml_bottom_span"><?php echo date(" F j, Y, g:i A", strtotime($row['user_date']))?> </span></p>
    <p id="ml_bottom_p"><img src="template/images/layout/icon.png" style="vertical-align: middle" /> Last online: <span id="ml_bottom_span"><?php echo date(" F j, Y, g:i A", strtotime($row['dt']))?> </span></p>
    <p id="ml_bottom_p" style="width: 284px; height: 30px; overflow-x: hidden; cursor: pointer;" title="Coming Soon"><img src="template/images/layout/icon.png" style="vertical-align: middle;" /> Last Activity: <span id="ml_bottom_span" style="text-decoration: underline;">Coming Soon</span></p>
    <p id="ml_bottom_p"><img src="template/images/layout/icon.png" style="vertical-align: middle" /> Is online now: <span id="ml_bottom_span"> <? if($row

['online'] == 1) {  // checks to see if the user allows their email to be shown, where '1' means they allow it to be shown
echo'Yes';
} else { echo'No'; // if they allow it, it displays their email } ?> </span></p>
</div>

    <? }
?>

有谁知道出了什么问题,因为我找不到。我是 php 新手。

我从http://phpeasystep.com/phptu/29.html得到这段代码

4

1 回答 1

0

您的查询中有错误。尝试将您的查询行更改为:

$result = mysql_query($sql) or die ('Error: '.mysql_error ());
于 2013-02-10T17:36:34.827 回答