我在同一个PHP脚本中尝试使用mysql_fetch_assoc
和mysql_result
时遇到了很大麻烦。
最初(当不使用mysql_result
函数时)我使用mysql_query
和mysql_fetch_assoc
的组合获得了所需的数据库值,一切都很好。然后我在代码中添加了2行,以使用mysql_result
获取某些“标题”字段值。
现在如果我运行我的脚本,因为它在下面我将只收到1个结果,即使有2个结果。然后,如果我将do/while
循环向上移动,使其位于其他2个代码块(mysql_fetch_assoc
和mysql_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 help,
非常感谢,
大卫
答案 0 :(得分:1)
我不确定这是否能解决您的问题,但我认为您应该“seek
”结果。
mysql_data_seek ($not_related_before, 0)
另外,请在 mysql_result 页面上查看警告:
不应该调用mysql_result() 混合调用其他功能 处理结果集。
希望这会有所帮助;)
答案 1 :(得分: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));
答案 2 :(得分:0)
更简单的解决方案是使用2D数组,我总是发现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 />";
}
?>
HTH