PHP mysql_fetch_row

我的問題是我已經下SQL與法確實取得資料庫的值,透過while迴圈搭配mysql_fetch_row函式取到所有資料

狀況一

假設撈出來的資料是

100

200

300

400

$querys = "SELECT total FROM percent WHERE data ='yes' ";

$result = mysql_query($querys);

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

echo $row[0]; //正常來說應該是100

echo $row[1]; //正常來說應該是200

}

但是echo $row[0]; 居然跑出所有撈出來的值(100 200 300 400)

後來我用print_r($row);

發現這些資料的鍵值都是一樣的

Array ( [0] =>100) Array ( [0] => 200 ) Array ( [0] => 300 ) Array ( [0] => 400 )

現在我的疑問出來了

1.有沒有辦法讓陣列的鍵值排序???

像是

Array ( [0] =>100) Array ( [1] => 200 ) Array ( [2] => 300 ) Array ( [3] => 400 )

2.還是我的用法錯誤而導致陣列的鍵值出現錯誤??

希望對PHP程式設計有研究或是有興趣的大大指點迷津

Update:

to 網路礦工

我想你應該曲解我的意思了

我並不是要單純的顯示出數值

之所以想要給陣列一個唯一的鍵值是因為我要做統計表用的

所以如果鍵值都一樣我取值就變得有問題

你的方式我嚐試過了但是沒有答道我要的效果

不過還是謝謝你的建議

2 Answers

Rating
  • 1 decade ago
    Favorite Answer

    我是不知道你為啥要用 mysql_fetch_row 而不用 mysql_fetch_array

    用 mysql_fetch_array 取出的不管是列或是整各表格

    都可以很彈性的用 while 來處理,是很方便的

    我這裡有個說明網頁

    http://linux.tnc.edu.tw/techdoc/banic/mysql/mysql_...

    他說明了 mysql_fetch_array 的用法

    while 是順序迴圈,他會一直由頭跑到尾除非遇到中斷才跳出的

    這是一個基本的概念,while 可以對陣列做很簡單的處理

    還有 你要有 HTML 的概念 你 echo 沒有給 <br> <p>

    while 是不會幫你換行的

    我的方法

    $querys = "SELECT total FROM percent WHERE data ='yes' ";

    $result = mysql_query($querys);

    while($row = mysql_fetch_array($result)){

    echo $row[total]."<br>";

    }

    出來就是

    100

    200

    300

    400

    如果我的 TABLE 資 料如下

    DATA1 DATA2 DATA3

    1 2 3

    4 5 6

    7 8 9

    我的程式改寫如下

    $querys = "SELECT * FROM percent";

    $result = mysql_query($querys);

    while($row = mysql_fetch_array($result)){

    echo $row[DATA1 ]."&". $row[DATA2]."&". $row[DATA3]."<br>" ;

    }

    出來結果就是

    1&2&3

    4&5&6

    7&8&9

    以上的說明希望可以幫到你

    2009-05-10 02:27:48 補充:

    我第二段的TABLE裡面

    DATA1 DATA2 DATA3 是欄位名稱

    2009-05-10 02:37:58 補充:

    不好意思 我習慣用 mysql_fetch_array

    而且在很多狀況下我們要做的是出表格而不是只出單列的資料

    因此 mysql_fetch_array是非常好用的

    至於 mysql_fetch_row 並不十分的好用

    對於經常用 selet * 的人而言

    可能永遠不知道下一次 mysql_fetch_row 時

    會列出 哪一列(row)資料

    因此對 SQL語法熟悉的人以及HTML熟悉的人而言

    mysql_fetch_array對處理資料表格是非常容易的

    2009-05-11 08:53:05 補充:

    原來你需要將資料轉到一個一維陣列中

    那很簡單你動態宣告各陣列

    在 WHILE 裡面逐次把值轉給你預設的一維陣列裡

    等 WHILE 結束之後

    你得到一個已經有該欄全部資料的一維陣列

  • hti
    Lv 6
    1 decade ago

    我建議你程式語法用網路礦工的建議,而在搜尋資料時,請sql幫你把資料排列或統計好後給你,你直接把值顯示出來就好了。

Still have questions? Get your answers by asking now.