/index.php?=页面出现MySQL错误,但不在memberlist.php上
当我添加php分页并转到此链接/index.php?page=memberlist时,我遇到以下错误:/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时,它工作得很好。所以我不知道怎么了,这是我的代码:
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;"> </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 ());