我有一个问题,有以下php代码:
$host="localhost";
$user_name="";
$pwd="";
$database_name="";
$conexiune = mysql_connect($host,$user_name,$pwd) or die("Nu ma pot conecta la MySQL!");
mysql_select_db($database_name, $conexiune) or die("Nu gasesc baza de date");
if (isset($_GET["page"])) {
$page = $_GET["page"];
} else {
$page=1;
};
$start_from = ($page-1) * 1;
$sql = "SELECT * FROM citate ORDER BY id DESC LIMIT $start_from, 1";
$rs_result = mysql_query ($sql,$conexiune);
while ($row = mysql_fetch_assoc($rs_result))
echo "<img src='" . $row['poza'] . "' />
<br />
" . $row['titlu'] . "
<br />
" . $row['descriere'] . "
<br />
" . $row['data'] . "
";
$sql = "SELECT COUNT(id) FROM citate";
$rs_result = mysql_query($sql,$conexiune);
$row = mysql_fetch_row($rs_result);
$total_records = $row[0];
$total_pages = ceil($total_records / 1);
$pagelink ='<a href="lista.php?page='.($page-1).'"><<</a> ';
$pagelink_2='<a href="lista.php?page='.($page+1).'">>></a> ';
if($page>1)
echo $pagelink;
if($page<2)
echo "";
for ($i=1; $i<=$total_pages; $i++) {
if ($i != $page)
echo "<a href='lista.php?page=".$i."'>".$i."</a> "; // xxxx = your page url address
if ($i==$page)
echo " <strong>". $i . "</strong> "; // defining class in the style sheet you can add colour or border to the displayed number
};
if($page<$total_pages)
echo $pagelink_2;
该代码为我提供了分页(你们已经知道了),而网址栏的外观如下:
http://www.site.ro/folder/lista.php?page=PAGE-NUMBER
我想看起来如下: http://www.site.ro/folder/lista.php?citat=SOME-NUMBERS&page=PAGE-NUMBER
我的数据库表填充如下:
--------------------------------------------------------------
| id | poza | titlu | descriere | citat | data | accesari |
--------------------------------------------------------------
我想从“citat”列中提取数据,因此来自网址栏的链接将如下所示:
http://www.site.ro/folder/lista.php?citat=EXTRACTED-FROM-CITAT&page=PAGE-NUMBER
每当我按下一页按钮时,都会看起来像:
http://www.site.ro/folder/lista.php?citat=2748925&page=1
http://www.site.ro/folder/lista.php?citat=2840194&page=2
诸如此类.. 我该如何修改该代码? 提前谢谢!
答案 0 :(得分:1)
我忽略了你所有的安全问题。
只要每页只显示一个项目,这将有效:
$last_citat = 0;
while ($row = mysql_fetch_assoc($rs_result)) {
echo "<img src='" . $row['poza'] . "' /><br />" . $row['titlu'] . "<br />" . $row['descriere'] . " <br />" . $row['data'] . "";
$last_citat = $row['citat'];
}
以后:
$pagelink ='<a href="lista.php?citat='.$last_citat.'&page='.($page-1).'"><<</a> ';
$pagelink_2='<a href="lista.php?citat='.$last_citat.'&page='.($page+1).'">>></a> ';
if($page>1) { echo $pagelink; }
if($page<2) { echo ""; }
for ($i=1; $i<=$total_pages; $i++) {
if ($i != $page) {
echo "<a href='lista.php?citat=".$last_citat."&page=".$i."'>".$i."</a> ";
}
if ($i==$page) {
echo " <strong>". $i . "</strong> ";
}
}
答案 1 :(得分:0)
您想通过'citat'值过滤数据库结果吗?
如果是这样,那么你必须在其中建立带参数'citat'的链接,例如:
<a href="lista.php?citat=NUMBER&page='.($page-1).'"><<</a>
然后使用GET ['citat']并将其添加到sql查询where
部分中,以便仅返回具有特定citat值的结果,如:
$sql = "SELECT * FROM citate WHERE citat = '".GET['citat']."' ORDER BY id DESC LIMIT $start_from, 1";
注意:这不是真实的例子而且错误地写了:你必须逃避 GET ['citat'] ,否则你的数据库很容易被很快攻击!
答案 2 :(得分:0)
从while循环中获取citat的值:
$citat = $row['citat'];
然后您可以随时随地使用$citat
,并检查网址中的citat参数,您可以通过以下方式执行:
if (isset($_GET['citat'])) {
//it's there do something
} else {
//it's absent
}