【问题标题】:Links does not show correct data链接不显示正确的数据
【发布时间】:2014-05-08 08:14:36
【问题描述】:

我遇到了一个问题,我不知道如何解决它。 如果我单击从此 php 生成的链接,结果与第一页上显示的结果相同。例如 view.php?page=2 显示与 view.php?page=1 或 3 相同的数据等。 'view.php?ID=' 也会发生这种情况。

<?php
require_once('connection.php');
require_once('auth.php');
echo "<br /><br /><font color=red size='6'><center>Facturi emise</center></font><br /><br />";
$query = "SELECT * FROM out_fact ORDER BY ID DESC LIMIT 0, 20"; 
$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); 
if (mysql_num_rows($result) > 0) { 
    echo "<table cellpadding=10 border=1 align=center>"; 
    while($row = mysql_fetch_row($result)) {
        echo "<tr>"; 
        echo "<td>"."<a href=javascript:window.open('view.php?ID=".$row[0]."','NAME','location=false')><font color=blue size='4'><center>".$row[1]." din data de ".$row[2]."</a></center>"."</font></td>";
        echo "<td>"."<font color=red size='4'><center>".$row[3]." ".$row[12]."</center></font></td>";
        echo "</tr>"; 
    };
    echo "</table>"; 
} 
else { 
    echo "No rows found!"; 
} 
echo "<tr><td> <a href='view.php?ID=".$row[0]."'>".$row[1]."</a></td></tr>";
mysql_free_result($result);  
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; }; 
$start_from = ($page-1) * 20; 
$sql = "SELECT COUNT(ID) FROM out_fact"; 
$query = mysql_query($sql); 
$result = mysql_fetch_row($query); 
$total_records = $result[0]; 
$total_pages = ceil($total_records / 20); 
for ($i=1; $i<=$total_pages; $i++) {
            echo "<a href='view.php?page=".$i."'>".$i."</a> ";
}; 
?>

如何发布正确的数据,或者缺少什么。我是php编码的新手... 提前致谢。

【问题讨论】:

  • 你有一个名为 '$start_from' 的变量,它对 '$page' 变量做了一些事情。但是你在哪里使用“$start_from”变量来做某事?
  • @dx4 正如我所说,我的编码不太好,我还在学习。我认为它应该选择要在页面上发布的 ID。

标签: php mysql post get


【解决方案1】:

至少尝试使用 MySQLi 而不是已弃用的 MySQL。而您正在尝试做的事情称为分页

connection.php

<?php

$con=mysqli_connect("YourHost","YourUsername","YourPassword","YourDatabase"); /* REPLACE THE NECESSARY HOST, USERNAME, PASSWORD, AND DATABASE */

if(mysqli_connect_errno()){

echo "Error".mysqli_connect_error();
}

?>

您的文件:

<?php
include('connection.php');
require_once('auth.php');

echo "<br><br><font color=red size='6'><center>Facturi emise</center></font><br><br>";

$query = "SELECT * FROM out_fact ORDER BY ID DESC"; 
$result = mysqli_query($con,$query); 

$count=mysqli_num_rows($result);
$r = mysqli_fetch_row($result);
$numrows = $r[0];

$rowsperpage = 10; /* NUMBER OF ROWS TO SHOW PER PAGE */
$totalpages = ceil($count / $rowsperpage);

if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
      $currentpage = (int) $_GET['currentpage'];
} else {
     $currentpage = 1;
} 

if ($currentpage > $totalpages) {
   $currentpage = $totalpages;
} 
if ($currentpage < 1) {
   $currentpage = 1;
} 

$offset = ($currentpage - 1) * $rowsperpage;

$result=mysqli_query($con,"SELECT * FROM out_fact ORDER BY ID DESC LIMIT $offset,$rowsperpage");

echo "<table cellpadding=10 border=1 align=center>"; 

    while($row = mysqli_fetch_array($result)){

    /* JUST REPLACE THE NECESSARY DATA YOU WANT TO INPUT INSIDE THIS WHILE LOOP */

        $rowdata=mysqli_real_escape_string($con,$row[0]);

        echo "<tr>"; 
        echo "<td><a href='view.php?ID=$rowdata&location=false' target='_blank'><font color=blue size='4'><center>".$row[1]." din data de ".$row[2]."</a></center>"."</font></td>"; /* JUST REPLACE THE NECESSARY DATA IN THE LINK IF YOU MUST */
        echo "<td>"."<font color=red size='4'><center>".$row[3]." ".$row[12]."</center></font></td>";
        echo "</tr>"; 

    } /* END OF WHILE LOOP */

if($count==0){
echo "<tr><td></td><td>No results found.</td><td></td></tr>";
}

else { /* START OF PAGINATION LINK */

echo '<tr height="30px;" valign="bottom"><td></td><td>';

echo "<table style='border-collapse:separate; border-spacing:3px;'><tr>";


/******  build the pagination links ******/
$range = 2;

if ($currentpage > 1) {
   $prevpage = $currentpage - 1;
   echo "<td style='width:70px; background-color:fff; border:solid #08c 1px; font-size:14px;' align='center'> <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage' style='background-color:fff;'>Previous</a> </td>";
} 


for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {

   if (($x > 0) && ($x <= $totalpages)) {
      if ($x == $currentpage) {    
         echo "<td style='width:20px; background-color:fff; font-size:14px; border:solid #ccc 2px;' align='center'> <font color='#ccc'><b>$x</b></font> </td>";
      } else {
         echo "<td style='width:20px; background-color:fff; font-size:14px; border:solid #08c 1px;' align='center'> <a href='{$_SERVER['PHP_SELF']}?currentpage=$x' style='background-color:fff;'>$x</a> </td>";
      } 
   } 
}                  

if ($currentpage != $totalpages) {
   $nextpage = $currentpage + 1;
     echo "<td style='width:70px; background-color:fff; font-size:14px; border:solid #08c 1px;' align='center'> <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage' style='background-color:fff;'>Next</a> </td>";

} // end if
/****** end build pagination links ******/

echo "</tr></table></td></tr>";

} /* END OF ELSE IF COUNT 0 */

echo '</table>';

?>

【讨论】:

  • 分页效果很好,应该在创建的表格的每个弹出页面中显示的 ID 怎么样?
  • 什么意思?你能详细解释一下吗?
  • @SorinAlexandru - 更新了我的答案。请检查此输出是否是您要查找的内容。
  • 你的分页页面的文件名是什么?
猜你喜欢
  • 2011-11-11
  • 2013-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-06
  • 2023-03-11
  • 1970-01-01
相关资源
最近更新 更多