所以我是新來的PHP/MySQL。我正在測試一個非常小的數據庫(只有10個記錄的單表),因爲我只是想學習。如何編寫PHP代碼以逐個查看記錄?
我展示一個PHP頁面上的以下結果:其中城市=「亞特蘭大」
它的工作原理..結果顯示在我的網頁上選擇MYTABLE *。現在,我想知道,我怎麼能把這個記錄下的鏈接放在「顯示下一個結果」的位置,並點擊它,它只是拉起一個新的頁面,並在我的數據庫中的下一個結果?
這是否需要整個分頁腳本還是有一個簡單的方法?
謝謝!
所以我是新來的PHP/MySQL。我正在測試一個非常小的數據庫(只有10個記錄的單表),因爲我只是想學習。如何編寫PHP代碼以逐個查看記錄?
我展示一個PHP頁面上的以下結果:其中城市=「亞特蘭大」
它的工作原理..結果顯示在我的網頁上選擇MYTABLE *。現在,我想知道,我怎麼能把這個記錄下的鏈接放在「顯示下一個結果」的位置,並點擊它,它只是拉起一個新的頁面,並在我的數據庫中的下一個結果?
這是否需要整個分頁腳本還是有一個簡單的方法?
謝謝!
你在看什麼是在php中分頁。網上有這麼多的教程。 here是一個你可以看到的
我能想到的最簡單的方法是非手工(如果你不想使用一個全分頁腳本)是獲得你的行的ID(可能使用array_keys()
),跟蹤當前活動的鍵(通過$ _GET)然後使用一些簡單的邏輯來確定id數組中的前一個值和下一個值,並在構建導航鏈接時使用它們。
最簡單的方法是將包括一個整數$_GET
變量,它是行號+ 1
<a href="index.php?id=<?php echo ($id + 1) ?>" />
然後爲你的PHP腳本,你需要得到的值,或使用默認值(0
)如果沒有提供。
<?php
if(!isset($_GET['id']))
$id = 0;
else
$id = $_GET['id'];
?>
不要忘記綁定你的整數,所以你不能得到無效的結果。在你的情況下,確保$id
不低於0
或高於9
。簡單的東西就像
if($id < 0) $id = 0;
if($id > 9) $id = 9;
應該工作。這會在前面的代碼示例之後立即執行。
然後爲您的查詢,根本就
$sql = "select * from mytable where city = 'atlanta' LIMIT {$id}, 1";
通知的LIMIT
條款這裏有兩個參數。首先,您當前的$id
號碼告訴查詢從哪裏開始查看結果集。第二個參數告訴它從開始應該採取多少結果。在這種情況下,我們總是需要一個,所以我們將它保留爲1
。
當然,你應該參數化這個查詢,但因爲它聽起來像你剛剛學習SQL,這不是一個大問題。如果這是一個公共網站,你需要。
你也可以使用mysql_num_rows
或PDO等於拿到適用的行的總數,然後確定$id + 1
是否高於行(這意味着你是最後一個記錄),如果是這樣,不顯示的總數越大到下一個記錄的鏈接。
完整代碼
<?php
if(!isset($_GET['id']))
$id = 0;
else
$id = $_GET['id'];
if($id < 0) $id = 0;
if($id > 9) $id = 9;
$sql = "select * from mytable where city = 'atlanta' LIMIT {$id}, 1";
$result = mysql_fetch_assoc($sql);
?>
Display your result here
<?php if(($id + 1) < mysql_num_rows($result)) :
<a href="index.php?id=<?php echo ($id + 1) ?>" />
<?php endif; ?>
一整個分頁腳本? :)不,只是這樣的事情
$items_per_page = 1;
$page = max(1, (int) $_GET['page']);
$offset = ($page-1) * $items_per_page;
$limit = $items_per_page;
$sql = "SELECT * FROM `table` LIMIT {$offset}, {$limit}"
現在只需要調用使用
http://localhost/index.php?page=1
http://localhost/index.php?page=2
http://localhost/index.php?page=3
etc
現在,我想知道你的腳本,我怎麼可以把一個鏈接這個紀錄,上面寫着「秀下下一個結果「並點擊它
您必須提供具有下一個數據庫條件鍵值的鏈接。
例如 你的網頁是:
從數據庫中選擇:亞特蘭大
鏈接=>下一個條目(在這裏,你必須提供一個條件你的實際情況是,其中城市=「亞特蘭大」等下次。你必須知道)
做到這一點,正確的方法是在這個例子中
$sql = "SELECT * FROM mytable WHERE id='<?=$_POST['id']?>'";
,並以這種方式創建SQL問題,你可以打印鏈接
<a href='?id=<?=db["id"]+1?>'>Next Entry</a>
謝謝!其他人讓我走了,這給了我需要的'下一個鏈接'信息。 – Andi
下一個結果是什麼意思?另一個城市(如「聖地亞哥」)或選定的所有「亞特蘭大」返回的下一個城市?如果是後者,你怎麼拉一個城市開始呢?你可以發佈你的PHP腳本和數據庫結構的更新嗎? – rockerest