Yahoo Answers is shutting down on May 4th, 2021 (Eastern Time) and beginning April 20th, 2021 (Eastern Time) the Yahoo Answers website will be in read-only mode. There will be no changes to other Yahoo properties or services, or your Yahoo account. You can find more information about the Yahoo Answers shutdown and how to download your data on this help page.

mysql_fetch_row 如何各資料做單比超連結?20

以下是簡易程式碼

while($x=mysql_fetch_row($result)){

echo "<td> $x[0]</td>"; //印出欄位0的所有資料表裡的內容

echo "<td> $x[1]</td>"; //印出欄位1的所有資料表裡的內容

}

這PHP程式碼主要目的是要印出資料庫裡資料表的欄位0和欄位1

若我在資料表裡設定欄位0為學生編號欄位1為學生姓名

比方說$x[0]為欄位0則會印出所以編號相同的欄位1則會印出所有學生姓名

請問?我想要將所有學生的姓名作超連結到各自獨立的網頁要如何寫href

比方說欄位的內容為

1. | 王大明

2. | 李小華

3. | 張阿凱

則我想要點選「王小明」就會跳到一個王小明的自介網站

若我點「李小華」則會跳到一個裡小華的自介網站

假使我在echo "<td> $x[0]</td>"的$x[1]寫入<a href="XXX.php">...</a>

則會變成所有筆資料都會連到一個相同的網站

但我的需求是要各連到不同的網站

請問該怎麼做?

Update:

echo " $x[0] " 更正成 echo " $x[1] "

4 Answers

Rating
  • 10 years ago
    Favorite Answer

    以你目前的資料表規劃

    欄位0為學生編號,欄位1為學生姓名

    要達成這個需求你必須再新增一個欄位

    裡面存放的就是每位同學要連結的網址

    就假設欄位2是存放網址(每個同學有不同的網址)

    接下來你將 echo "<td> $x[1]</td>"; 改寫如下即可

    echo "<td><a href='".$x[2]."'>$x[1]</a></td>";

  • Sam
    Lv 6
    10 years ago

    來個小小的提示:

    mysql_fetch_assoc()

    mysql_fetch_object()

    2011-10-17 23:28:38 補充:

    通常而言:基於安全性是並不揭示帳號的。

    你應該使用資料庫的id做為資料連結的傳遞。

    2011-10-18 07:39:23 補充:

    認真重新仔細的看了原po的問題之後。

    原來原po只是想知道值的傳遞嘛!

    很簡單的一個做法是說,因為你的資料有「編號」

    你可以這樣寫:

    echo '<a href="xxx.php?id='.$x[0].'">';

    2011-10-18 07:42:48 補充:

    接收端的php

    $id = $_GET['id'];

    $sql = "SELECT * FORM `student` WHERE id = '{$id}'";

    $result = mysql_query($sql);

    $row = mysql_fetch_assoc($result);

    然後你就可以........

    把$row['name'],$row['address'],$row['class']像這樣取出來

    (假設你有name、address、class這三個欄位。)

    2011-10-18 07:44:29 補充:

    建議在使用的方便性上還是使用mysql_fetch_assoc而不要用mysql_fetch_row

    因為mysql_fetch_row是以陣列數字為key,你很難對應你要的欄位。

    而mysql_fetch_assoc則是將欄位名稱定義為陣列的key名。

    那麼你的問題就很容易處理了。

  • 10 years ago

    但是那不是帳號欸

    那是資料表欄位裡面的內容

    十六進制編輯器嗎?那轉完之後的寫法可以請問一下嗎?

    謝謝大大

    2011-10-17 21:39:53 補充:

    $x[1]是表示資料表欄位1的所有內容

    而裡面是儲存姓名所以內容是中文的

  • 10 years ago

    <a href="xxx.php?account=$x[1]">

    如果$x[1]是使用者帳號 可以這樣試試 這樣會連結到各自網站

    2011-10-17 20:31:38 補充:

    如果堅持用中文 要先使用十六進制編緝器轉成英文及數字

    2011-10-17 21:08:03 補充:

    $x[1] 是用中文名字?

    2011-10-17 23:38:15 補充:

    其實用英文較方便

    echo $_SERVER['REQUEST_URI'];

    可以抓取網址

    但瀏覽器關係 method設成get好像較好

    例如<input type="text" name="name" value="首頁">

    會抓出 /xxx.php?name=%E9%A6%96%E9%A0%81&send=ok

    2011-10-17 23:42:44 補充:

    e9 a6 96 e9 a0 81就是16進制的值

    只要抓取$_SERVER['REQUEST_URI'];網址裡的16進制值再套進<a href>

    就能進到個人頁面

    只是用英文較好 這種方式太過繁鎖

Still have questions? Get your answers by asking now.