[英]Dynamic page with dynamic link
嗨,我有一個排序問題要問。
我的數據庫的mySQL表中的列之一包含帶有“ Photoname”的圖像。
數據庫:
照片名
蘋果
熊
貓
橙子
因此,在我的catalog.php中,我將顯示數據庫中的所有圖像。 然后,我有一個導航欄(div),以允許查看者過濾圖像。 因此用戶可以按A | B | C ... | Z |。
我的問題是關於URL和權限的。 我會創建imagesort.php,它將以一般方式處理所有mySQL(這樣我就不必浪費時間為A-Z創建)。
imagesort.php應該像imagesort.php?sort=A
嗎? 然后在imagesort.php中如何獲取值A
? 例如: select photoname, date from image where photoname LIKE 'a%'
而且如果上述方法正確,我如何解析此變量A
到catalog.php中的鏈接? 到目前為止,這是我在catalog.php中所做的:
<ul>
<li><a href="imagesort.php?sort=A">A</a></li>
<li><a href="imagesort.php?sort=B">B</a></li>
<li><a href="imagesort.php?sort=C">C</a></li>
...
</ul>
我真的必須對26個條目執行此操作嗎? 還是有更簡單的方法?
您可以使用這樣的東西...
<ul>
<?php for($i=65;$i<90;$i++) { ?>
<li><a href="imagesort.php?sort=&#<php echo $i;?>;">&#<php echo $i;?>;</a></li>
<?php } ?>
</ul>
如果鏈接的格式是這樣,則它們將以$ _GET super global結尾:
$sort = $_GET['sort'];
對於第二個問題,您可以輕松地在php中使用循環來遍歷字母,以生成所需的分頁內容:
$link_base = 'imagesort.php';
$pagination_content = '<ul>';
for($i=65; $i<=90; $i++)
{
$pagination_content .= '<li><a href="'.$link_base.'?sort='.chr($i);.'">'.chr($i).'</a></li>';
}
您需要從$ _GET數組中獲取sort
的值。 在SQL查詢中使用輸入之前,請確保對輸入進行清理 。
$match = "";
if(isset($_GET['sort']))
{
// Escape the string to guard against SQL injection
$match = mysql_real_escape_string($_GET['sort']);
}
$query = "select photoname, date from image where photoname LIKE '$match%'";
這段代碼可以處理任何 sort
值,包括一個空字符串。 如果要將有效字符串限制為單個大寫字母字符,則必須對此進行單獨檢查,如下所示:
if(strlen($match) != 1 || ctype_upper($match) == false)
{
$match = "";
// Maybe some other error condition
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.