2011-04-16 98 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 />"; 
} 
?> 

心连心