Php 为什么只返回数组的第一个元素? $count=0; $result1=mysql_查询(“从sbsw中选择fwid,其中fword=””“$searchText.”); 而($result2=mysql\u fetch\u数组($result1)) { $result3=mysql_查询(“从wrsyn中选择fsyn,其中fwid=””。$result2[$count]。“”); $result4=mysql\u fetch\u数组($result3); 打印$result4[$count]。; $count++; } mysql_免费_结果($result1); mysql_免费_结果($result3);
请使用合理的变量名并正确缩进。您将从每一行中获得一列,因为您只为行上的每个迭代打印一次 基本上:对于每一行,打印一列的值 $count变量决定了哪一列,但它显然没有意义,因为它对您所在的行进行计数 像这样的东西应该可以做到:(未经测试)Php 为什么只返回数组的第一个元素? $count=0; $result1=mysql_查询(“从sbsw中选择fwid,其中fword=””“$searchText.”); 而($result2=mysql\u fetch\u数组($result1)) { $result3=mysql_查询(“从wrsyn中选择fsyn,其中fwid=””。$result2[$count]。“”); $result4=mysql\u fetch\u数组($result3); 打印$result4[$count]。; $count++; } mysql_免费_结果($result1); mysql_免费_结果($result3);,php,mysql,Php,Mysql,请使用合理的变量名并正确缩进。您将从每一行中获得一列,因为您只为行上的每个迭代打印一次 基本上:对于每一行,打印一列的值 $count变量决定了哪一列,但它显然没有意义,因为它对您所在的行进行计数 像这样的东西应该可以做到:(未经测试) $result1=mysql\u查询(“从sbsw中选择fwid,其中fword=”“$searchText.”); 而($result2=mysql\u fetch\u数组($result1)) { $result3=mysql_查询(“从wrsyn中选择fs
$result1=mysql\u查询(“从sbsw中选择fwid,其中fword=”“$searchText.”);
而($result2=mysql\u fetch\u数组($result1))
{
$result3=mysql_查询(“从wrsyn中选择fsyn,其中fwid=””。$result2['fwid'].“”);
$result4=mysql\u fetch\u行($result3);
对于($x=0;$x;
}
}
mysql_免费_结果($result1);
mysql_免费_结果($result3);
哦,我将fetch\u数组改为fetch\u行,以简化迭代过程。让我们看看它是如何工作的——例如,如果您有如下表结构
$result1 = mysql_query("SELECT fwid FROM sbsw WHERE fword = '".$searchText."'");
while ($result2= mysql_fetch_array($result1))
{
$result3 = mysql_query("SELECT fsyn FROM wrsyn WHERE fwid = '".$result2['fwid']."'");
$result4= mysql_fetch_row($result3);
for($x = 0; $x < count($result4); $x++){
print $result4[$x].'<br>';
}
}
mysql_free_result($result1);
mysql_free_result($result3);
当执行查询时,从表中选择*然后循环$result=mysql\u fetch\u array($query)
,$result
将始终是一个包含
id | name | surname | role
1 John Smith user
2 Peter Qeep user
3 Mark Ziii admin
因此,当您执行查询时,$result3=mysql\u查询(“从wrsyn中选择fsyn,其中fwid=”。$result2[$count]。“”)
,在第一次迭代中,$count
将是0
,这是前一个查询返回的结果的键,但是在任何进一步的迭代中,它将增加,这将导致未定义的键。这意味着您必须停止使用变量$count
,而只使用$result2[0]
。
另外,更好的方法是使用MySQLJOIN
,在您的示例中是从sbsw s JOIN wrsyn w ON s.fwid=w.fwid上选择w.fsyn,其中s.fword=“.”$searchText.”代码>我没有看到任何返回发生。请澄清您的问题。您还需要学习如何使用JOIN
s这并不能解决主要问题-$result2[$count]
,因此它将不起作用。哦,我的天,谢谢:)现在应该起作用了,因为这是最接近他的方法的解决方案,即使在编辑之后加入显然更好,它也不会起作用,如果您使用的是mysql_fetch_数组,默认情况下它会返回一个数字索引数组,您需要使用选项mysql_ASSOC
(mysql_fetch_数组($query,mysql_ASSOC);
)来获取关联数组键:-)不要这样认为。。来自手动:array mysql\u fetch\u array(resource$result[,int$result\u type=mysql\u BOTH])哦,我的错,我一直认为默认值是mysql\u NUM
。
id | name | surname | role
1 John Smith user
2 Peter Qeep user
3 Mark Ziii admin
[0] => id,
[1] => name,
[2] => surname,
[3] => role