2012-06-08 62 views
2

我需要從一個MySQL數據庫如何從mysql數據庫回顯ith行和第n列?

$query = 'SELECT * FROM picture LIMIT 10'; 
    $result = mysql_query($query); 
    $row = mysql_fetch_array($result,MYSQL_NUM); 

  • 問題1呼應了第4行第3列>什麼是$結果包含哪些內容?在MYSQL中看到的表格形式?

  • 問題2> $行包含什麼?只是第一排?

  • 問題3>我該如何移動到第4行? echo $ row [4]不是 工作! ?

  • 問題4>我該如何移動到第4行第3列?

    echo $row[4][3]不起作用! ?

  • 問題5 - 如果我有送2行返回給客戶端( 假設AJAX請求從PHP)

這將是PHP

$query = 'SELECT * FROM picture LIMIT 5'; 
$result = mysql_query($query); 
$rec = mysql_fetch_array($result,MYSQL_NUM); 

print_r (json_encode($result[0])); 

而且在html端

$.ajax({ 
     url: "viewnew.php", 
     data: { 
     current_image: imId, 
     direction : dir 
     }, 
     success: function(ret){ 
      console.log(ret); 
      var arr = eval(ret); 
      alert("first: " + arr[0] + ", second: " + arr[1]); 
+1

對於新代碼,不要再使用古代的mysql_ *函數,它們將被棄用:http://www.webmaster-source.com/2011/07/25/php-to-deprecate-mysql-extension-in -favor-of-mysqli-and-pdo/ – markus

回答

3

您的回答是echo mysql_result($result, 3, 3)。您也可以使用echo mysql_result($result, 3, 'rowname')。請注意,由於它是零索引,所以第四行是#3,因爲第一行是#0。

$result包含MySQL查詢結果對象,您需要使用內置函數來訪問它。

$row確實只包含僅第一行的數組。內部指針增加,所以如果您運行$row代碼行兩次,$row現在將具有第二行。一旦用完行後,該行代碼將評估爲false(這在下面很有用)。

php.net提供了這段代碼:

while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
    printf("ID: %s Name: %s", $row[0], $row[1]); 
} 

由於while語句將評估爲假,當它用完行的,你得到的所有行。由於您正在進行查詢,因此您應該知道如何處理每行中的相關數據。

關於AJAX,在服務器端,您需要將行分配給數組變量(如上),然後輸出您想要的數據。既然你知道你將如何輸出它們,這取決於你如何在客戶端處理它們。

htmlspecialchars()htmlentities()將使數據安全輸出。

的樣品的方法將是如下:

$query = mysql_query(...); 
$rows = array(); 
while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
    $rows[] = $row; //append row to rows array 
} 
//Then output the relevant rows 

php.net對如何在PHP使用MySQL功能的大量文件。

另外,不要忘記安全!使用用戶輸入進行查詢時,幾乎總是需要mysql_real_escape_string()

+0

這有幫助,但假設我從php獲取2個url的列表。我如何在屏幕上提醒他們? ' $ query ='SELECT pic_id FROM picture LIMIT 5'; $ result = mysql_query($ query); while($ rec = mysql_fetch_array($ result,MYSQL_NUM)){ $ url。= $ rec [0]; } } echo $ url;' – Yahoo

+0

以上問題編號爲 – Yahoo

+0

'echo'會輸出字符串,'print_r($ var)'會輸出'$ var',而不管它是什麼類型的變量。 –