Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
/index.php?=页面出现MySQL错误,但不在memberlist.php上_Php_Mysql - Fatal编程技术网

/index.php?=页面出现MySQL错误,但不在memberlist.php上

/index.php?=页面出现MySQL错误,但不在memberlist.php上,php,mysql,Php,Mysql,当我添加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分页并转到此链接/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 �</a>";
    else
        $pagination.= "<span class=\"disabled\">next �</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>

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

$result = mysql_query($sql) or die ('Error: '.mysql_error ());

这就是全部源代码。您的错误显示第312行有错误,但您的代码只有150行=)我只添加了php代码部分
在每次
mysql\u查询之后
以准确显示SQL错误。可能您没有uses表或其他内容;)
mysql_*()
API已被弃用。请改用MySQLi或PDO_MySQL扩展@DoSparKot我在哪里添加它?请不要提供带有不推荐API的解决方案。我得到错误:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第1行中使用的接近“-2,2”的正确语法。您的分页算法显然是错误的-LIMIT子句中不能有负值。@DoSparKot-虽然我同意OP应该使用更新的libs,项目在被删除之前会被弃用几年,因为经常有项目太大、太麻烦,不可能一夜之间更新弃用的代码。因此,有时编码人员别无选择,只能使用不推荐的项。您会收到该错误,因为$start的值为-2。如果$page设置为0,则代码会使$start的值为-2。移动if($page==0)$page=1;在您的查询呼叫上方的行。
$result = mysql_query($sql) or die ('Error: '.mysql_error ());