關於資料庫查尋的問題?

edited 十月 2013 in 進階PHP討論
<?
$link=mysql_connect("localhost");
$query=mysql_select_db("123_db",$link);
$sql="select * from admin";
$result = mysql_query($sql);
$num=mysql_num_rows($result);
$res=mysql_data_seek($result,$a);
$row = mysql_fetch_assoc($result);
$a=$a+1;
?>
<form name="form1" method="post" action="test1-1.php" >
<td><p align=center><input type=submit value=next ></td></p>
<p align=center><input type="text" name="AdName" value=<? echo $row["Ad_Name"]?> ></P>
<p align=center><input type=text name="AdPass" value=<? echo $row["Ad_Pass"] ?> ></P>
</form>
我想要按下按鈕後查尋下一筆資料顯示於兩個text上
感謝!

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=815

評論

  • edited 九月 2005
    看不懂...,當你不願意多花些心思找答案時,麻煩多打幾個字...
  • edited 九月 2005
    sunnylee 寫道:
    <?
    $link=mysql_connect("localhost");
    $query=mysql_select_db("123_db",$link);
    $sql="select * from admin";
    $result = mysql_query($sql);
    $num=mysql_num_rows($result);
    $res=mysql_data_seek($result,$a);
    $row = mysql_fetch_assoc($result);
    $a=$a+1;
    ?>
    <form name="form1" method="post" action="test1-1.php" >
    <td><p align=center><input type=submit value=next ></td></p>
    <p align=center><input type="text" name="AdName" value=<? echo $row["Ad_Name"]?> ></P>
    <p align=center><input type=text name="AdPass" value=<? echo $row["Ad_Pass"] ?> ></P>
    </form>
    我想要按下按鈕後查尋下一筆資料顯示於兩個text上
    感謝!
    我的程式是先連接到資料庫123並選擇admin這個資料表,資料表裏而有兩個欄位一個是Ad_Pass另一個是Ad_Name,然後使用mysql_data_seek這個函數來指定要查詢的資料欄位,$a就是用來存放指標的位址,當按鈕按下後$a會加一把mysql_data_seek指到下一個row ,或許我的程式有錯誤!上面整個程式的部分存成test1-1.php,在流灠的時候會出現一個按鈕及兩個input text(用來顯示資料的)。
    我的問題是當我問下按鈕後text會出現要尋找的資料!就這樣......
  • edited 九月 2005
    1. 為了要取得一筆資料而將整個資料庫都挖出來並不是很好的作法,一般會在SQL指令中透過 WHERE 與 LIMIT 來減少資料庫與程式之間的資料量,也能夠取得正確的資料。

    2. 並不清楚你在這段程式的上面做了些什麼,如果希望按了按鈕取得下一筆資料,表單上方應該要有一個接收上次動作索引值的變數,索引值加一的動作應該出現在查詢資料之前。
  • edited 九月 2005
    <?
    $link=mysql_connect("localhost");
    $query=mysql_select_db("123_db",$link);
    $sql="select * from admin";
    $result = mysql_query($sql);
    $num=mysql_num_rows($result);
    $res=mysql_data_seek($result,$_POST[a]);
    $row = mysql_fetch_assoc($result);
    ?>
    <form name="form1" method="post" >
    <td><p align=center><input type=submit value=next ></td></p>
    <p align=center><input type="text" name="a" value=<? echo $_POST[a]+1?> ></P>
    <p align=center><input type="text" name="AdName" value=<? echo $row["Ad_Name"]?> ></P>
    <p align=center><input type=text name="AdPass" value=<? echo $row["Ad_Pass"] ?> ></P>
    </form>
    上面這個程式就是我要的動作,只是說有一個缺點就是a的值必須在text上面顯示,這樣$_post[a]才能抓到值,而使得mysql_data_seek指標可以往下指。若我的寫法或關念有錯誤,請多多指導!謝謝
  • edited 九月 2005
    <input type="hidden" name="a" value=<? echo $_POST[a]+1?> >

    建議你可以花點時間好好看完一本PHP的書,花個半天、一天時間看完再開始動手可能會讓你省下更多時間。
  • edited 九月 2005
    sunnylee 寫道:
    <?
    $link=mysql_connect("localhost");
    $query=mysql_select_db("123_db",$link);
    $sql="select * from admin";
    $result = mysql_query($sql);
    $num=mysql_num_rows($result);
    $res=mysql_data_seek($result,$_POST[a]);
    $row = mysql_fetch_assoc($result);
    ?>
    <form name="form1" method="post" >
    <td><p align=center><input type=submit value=next ></td></p>
    <p align=center><input type="text" name="a" value=<? echo $_POST[a]+1?> ></P>
    <p align=center><input type="text" name="AdName" value=<? echo $row["Ad_Name"]?> ></P>
    <p align=center><input type=text name="AdPass" value=<? echo $row["Ad_Pass"] ?> ></P>
    </form>
    上面這個程式就是我要的動作,只是說有一個缺點就是a的值必須在text上面顯示,這樣$_post[a]才能抓到值,而使得mysql_data_seek指標可以往下指。若我的寫法或關念有錯誤,請多多指導!謝謝

    ==========================================

    版主有提到
    <input type="hidden" name="a" value="<?=$_POST[a]+1?>">
    只是你不需要在這邊加1,
    送回到本身的時候作 a++; 就好,問題是要做好判斷,
    還有,select * from admin
    你只抓兩個column 的資料確 select * 會造成負擔,
    你這邊用mysql_data_seek這個函式去做
    我通常都是用 $sql = "select column1 , column2 from table limit '".$_POST[a]."' , 1 " 的方式去做,這樣就不用在去做mysql_data_seek 的這個函式.....一樣是見仁見智囉....
  • edited 九月 2005
    謝謝jagerhu大大的回應!的確select *會造成負擔,這點我忘了!^^
Sign In or Register to comment.