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 为什么只返回数组的第一个元素? $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

请使用合理的变量名并正确缩进。您将从每一行中获得一列,因为您只为行上的每个迭代打印一次

基本上:对于每一行,打印一列的值

$count变量决定了哪一列,但它显然没有意义,因为它对您所在的行进行计数

像这样的东西应该可以做到:(未经测试)

$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]



另外,更好的方法是使用MySQL
JOIN
,在您的示例中是
从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