2011-04-16 92 views
0

我在嘗試在同一個PHP腳本中一起使用mysql_fetch_assocmysql_result時遇到了很大的麻煩。一起使用mysql_fetch_assoc和mysql_result?

最初(當不使用mysql_result函數)我得到所需的數據庫值使用組合mysql_querymysql_fetch_assoc和一切都很好。然後我在我的代碼中添加了2行,以使用mysql_result獲得某些「標題」字段值。

現在,如果我運行我的腳本,因爲它是下面我將只收到1結果,即使有2個結果。然後,如果我移動我的do/while環路,使其位於其他兩個代碼塊(mysql_fetch_assocmysql_result行)之間,我將收到所需的2個結果。

我需要我的循環後面的mysql_result部分,所以把它放在它不是一個選項之前。

// connect to DB and get values 
mysql_select_db($database, $mywebsite); 
$query_not_related_before = "SELECT * FROM table limit 2"; 
$not_related_before = mysql_query($query_not_related_before, $ mywebsite); 
$row_not_related_before = mysql_fetch_assoc($not_related_before); 


// Extract just the results from the title field (the problem area!) 
$before_essayid4 = mysql_result($not_related_before,0, 'title'); 
$before_essayid5 = mysql_result($not_related_before,1, 'title'); 


// Display results etc 
do { 
echo "<br />".$row_not_related_before['title']."<br />";} 
while ($row_not_related_before = mysql_fetch_assoc($not_related_before)); 

Plase幫助,

非常感謝,

大衛

回答

0

你得到一個行,因爲第一個在這裏已經請求:

$row_not_related_before = mysql_fetch_assoc($not_related_before); 

所以,我認爲你必須結果指針移動到開始:

mysql_data_seek($not_related_before, 0); 
// Display results etc 
do { 
echo "<br />".$row_not_related_before['title']."<br />";} 
while ($row_not_related_before = mysql_fetch_assoc($not_related_before)); 
1

我不能確定這是否會解決你的問題,但我認爲你應該 「seek」 結果返回。

mysql_data_seek ($not_related_before, 0) 

此外,檢查出警告的mysql_result頁:

呼叫至mysql_result()不應該 混合調用與結果集處理等功能 。

希望這有助於;)

0

更簡單的解決方案是使用二維數組,我總是發現mysql函數有點麻煩。

<?php 
$result = mysqli_query(db_connect(),$query); 
$result_out = array(); 
     if(@mysqli_num_rows($result)) 
      while($row=mysqli_fetch_array($result,MYSQLI_ASSOC))$result_out[]=$row; 
foreach($result_out as $row) 
{ 
echo "<br />".$row['title']."<br />"; 
} 
?> 

心連心