首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么只返回数组的第一个元素?

为什么只返回数组的第一个元素?
EN

Stack Overflow用户
提问于 2010-09-27 01:52:17
回答 2查看 302关注 0票数 0
代码语言:javascript
复制
$count =0;
$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[$count]."'");   
$result4= mysql_fetch_array($result3);
print $result4[$count].'<br>';
$count++;
}

mysql_free_result($result1);
mysql_free_result($result3);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-27 02:03:26

让我们来看看mysql_fetch_array是如何工作的-例如,如果您的表结构如下

代码语言:javascript
复制
id | name | surname | role 

 1    John   Smith    user
 2    Peter  Qeep     user
 3    Mark   Ziii     admin

当您执行查询SELECT * FROM table,然后循环$result = mysql_fetch_array($query)时,$result将始终是一个包含以下内容的数组(4

代码语言:javascript
复制
[0] => id,
[1] => name,
[2] => surname,
[3] => role

因此,当您执行查询$result3 = mysql_query("SELECT fsyn FROM wrsyn WHERE fwid = '".$result2[$count]."'");时,在第一次迭代中,$count将是0,这是前一个查询返回的结果的键,但是在任何进一步的迭代中,它都会增加,这将导致未定义的键。这意味着您必须停止使用变量$count,而只使用$result2[0]

此外,更好的方法是使用MySQL JOIN,在您的示例中是SELECT w.fsyn FROM sbsw s JOIN wrsyn w ON s.fwid = w.fwid WHERE s.fword = "'.$searchText.'";

票数 1
EN

Stack Overflow用户

发布于 2010-09-27 02:01:02

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

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

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

下面这样的代码应该可以做到:(未经过测试)

代码语言:javascript
复制
$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);

哦,为了简化迭代,我在内部循环中将fetch_array改为fetch_row。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3799068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档