【问题标题】:PHP/SQL - Limiting amount of results in a certain page [duplicate]PHP / SQL - 限制特定页面中的结果数量[重复]
【发布时间】:2016-08-26 07:56:03
【问题描述】:

我希望将页面上的结果数量限制为 20,但页面底部将是 1、2、3、4 等。我该怎么做?到目前为止,我已经有了这个,但不知道从哪里开始: 代码:

$conn = mysql_connect($dbhost, $dbuser, $dbpass, $database);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}

mysql_select_db('evocityi_stocks');

$query = "SELECT * FROM FUMUKU"; //
$result = mysql_query($query);

echo "<table>
<tr>
<th>Stock Name</th>
<th>Stock Price</th>
<th>Time</th>
</tr>";


while($row = mysql_fetch_array($result)){   
echo "<tr><td>" . $row['Stock'] . "</td><td>" . $row['Price'] . "<td>" . $row['TimeD'] . "</td></tr>";
}
echo "</table>"; //Close the table in HTML
mysql_close();
?>

【问题讨论】:

标签: php mysql pagination


【解决方案1】:
<?php 
if (isset(mysql_real_escape_string($_GET["page"]))) 
{
    $page  = mysql_real_escape_string($_GET["page"]); 
}
else  
{ 
$page=1;
 }
$start_from = ($page-1) * 20; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass, $database);
if(! $conn )
{
 die('Could not connect: ' . mysql_error());
}
mysql_select_db('evocityi_stocks');

$sql = "SELECT * FROM FUMUKU ORDER BY Stock ASC LIMIT $start_from, 20"; 
$result = mysql_query($query);
?> 

echo "<table>
<tr>
<th>Stock Name</th>
<th>Stock Price</th>
<th>Time</th>
</tr>";


while($row = mysql_fetch_array($result)){   
echo "<tr><td>" . $row['Stock'] . "</td><td>" . $row['Price'] . "<td>" . 

$row['TimeD'] . "</td></tr>";
}
echo "</table>"; //Close the table in HTML 
<?php 
$sql = "SELECT COUNT(Stock) FROM FUMUKU"; 
$result = mysql_query($sql); 
$row = mysql_fetch_row($result); 
$total_records = $row[0]; 
$total_pages = ceil($total_records / 20); 

for ($i=1; $i<=$total_pages; $i++) { 
            echo "<a href='yourpage.php?page=".$i."'>".$i."</a> "; 
}; 
?>

【讨论】:

  • 被否决,因为 xss 问题(将值从数据库简单写入 HTML)。 sitepoint.com/php-security-cross-site-scripting-attacks-xss
  • 感谢您的关心,我只是帮助用户完成了他的页面导航工作。维护这些东西是用户的责任。他可以使用 PDO 语句来控制它
  • PDO 不能防止 xss。回答者有责任不在回答中添加有害代码。这就是我投反对票的原因。
  • 现在纠正了我使用 htmlspecialchars 来防止 xss 问题的错误。谢谢
  • 是的,但是你用错了地方。 htmlspecialchars 用于输出,而不是输入。在输入时您使用mysql_real_escape_string。阅读上面的链接文章。在这种情况下,您需要更正 echo 行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 2018-12-30
  • 2016-01-07
  • 1970-01-01
  • 2012-11-03
相关资源
最近更新 更多