[請益] 關於POST & 分頁瀏覽的程碼問題...

看板PHP作者 (羽球小班)時間15年前 (2010/05/23 23:12), 編輯推噓3(303)
留言6則, 4人參與, 最新討論串1/1
經過POST傳送欲連接的資料庫參數,一開始可以正常顯示 可是點擊下一頁便收不到由1-1.php傳來的$database參數 請問問題出在哪裡?小弟不了解,有大大能解釋給小弟聽嗎? ↓以下是程碼↓ ===========================(1-1.php)=========================== <form method="POST" action="1-2.php"> 欲連接的資料庫: <input type="radio" name="DataBase" value="1" checked>test1 <input type="radio" name="DataBase" value="2">test2 <input type="radio" name="DataBase" value="3">test3 <input type="radio" name="DataBase" value="4">test4<br> <input type="submit" value="送出"> <input type="reset" value="重新輸入"> </form> ===========================(1-2.php)=========================== <?php require_once('dbtools.inc.php'); //自製的function //指定每頁顯示幾筆紀錄 $records_per_page=5; //取得要顯示第幾頁的紀錄 if(isset($_GET['page'])) $page=$_GET['page']; else $page=1; //建立資料連接 $link=create_connection(); switch($_POST["DataBase"]) //接收POST,決定開啟的資料庫名稱 { case "1": $database="test1"; break; case "2": $database="test2"; break; case "3": $database="test3"; break; case "4": $database="test4"; break; } //執行 SQL 命令 $sql = "SELECT no AS '代號' , name AS '姓名' , id AS '學號' , class AS '科系/班級' , telephone AS '電話' , address AS '地址' FROM student"; //透過自製的function,連接資料庫執行SQL $result=execute_sql($database, $sql, $link); //取得欄位數 $total_fields=mysql_num_fields($result); //取得紀錄數 $total_records=mysql_num_rows($result); //計算總頁數 $total_pages=ceil($total_records / $records_per_page); //計算本頁第一筆紀錄的序號 $started_redcord=$records_per_page * ($page - 1); //將紀錄指標移至本頁第一筆紀錄的序號 mysql_data_seek($result, $started_redcord); //建立表單;顯示欄位名稱 echo "<table border='1' align='center' width='800'>"; echo "<tr align='center'>"; for($i=0;$i<$total_fields;$i++) echo '<td>'.mysql_field_name($result, $i).'</td>'; echo '</tr>'; //顯示紀錄 $j=1; while($row=mysql_fetch_row($result) and $j <= $records_per_page) { echo '<tr>'; for($i=0;$i<$total_fields;$i++) echo '<td>'.$row[$i].'</td>'; $j++; echo '</tr>'; } echo '</table>'; //產生導覽列 echo "<p align='center'>"; if($page>1) echo "<a href='1-2.php?page=".($page-1)."'> 上一頁 </a>"; for($i=1;$i<=$total_pages;$i++) { if($i==$page) echo $i; else echo "<a href='1-2.php?page=$i'> $i </a>"; } if($page<$total_pages) echo "<a href='1-2.php?page=".($page+1)."'> 下一頁 </a>"; echo '</p>'; mysql_free_result($result); mysql_close($link); ?> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.113.86.49 ※ 編輯: Jyie 來自: 59.113.86.49 (05/23 23:13)

05/23 23:39, , 1F
因為你點下一頁是送出GET,但你判斷資料庫是用POST
05/23 23:39, 1F

05/24 00:32, , 2F
那請問我應該要怎麼解決這個問題?
05/24 00:32, 2F

05/24 11:10, , 3F
用SESSION記起來?
05/24 11:10, 3F

05/26 17:58, , 4F
只要在頁數的網址傳遞資料庫的參數就可以了
05/26 17:58, 4F

05/26 17:59, , 5F
像是 1-2.php?page=1&Database=test2
05/26 17:59, 5F

05/26 18:00, , 6F
當然接收的時候就需要GET跟POST選一個來接收(ifelse)
05/26 18:00, 6F
文章代碼(AID): #1B-KNBzk (PHP)
文章代碼(AID): #1B-KNBzk (PHP)