逗号分隔的值不以“foreach”显示.只有一个人出现.为什么

  • 本文关键字:一个人 显示 分隔 foreach php
  • 更新时间 :
  • 英文 :


此代码不起作用。我正在尝试获取功能名称列表。类别 12 中的产品都分配了 5 个特征,但在打印时仅显示 1 个特征。

奇怪的是,当我在第二个查询之后立即回显$FeatureName(在右括号之前)时,它会回显 5 个项目。但是当我打电话给$HTML时,我只得到一个。

第一个查询中的功能如下所示:

23,41,68,71,80

我的代码如下:

$HTML="<table><tr>";
$i=0;
$count=0;
$query="SELECT features FROM products WHERE category='12'";
$res=mysql_query($query);
while(list($features)=mysql_fetch_array($res))
  {
   $i++;
   $count++;
$features = explode(',' , $features);
foreach($features as $x =>$key) {
$x >0;
       $query="SELECT FeatureName FROM products_features WHERE id='$key'";
       list($FeatureName)=mysql_fetch_array(mysql_query($query)); 
}
$HTML.="<td> $FeatureName </td>";
      if(($i%1)==0)
         $HTML.="</tr><tr>";
  }
$HTML.="</tr></table>";

我哪里出错了?感谢您的任何帮助。

你做到了

$HTML.="<td> $FeatureName </td>";

foreach($features as $x =>$key)循环之外。把它放在里面让它工作,所以:

foreach($features as $x =>$key) {
   $query="SELECT FeatureName FROM products_features WHERE id='$key'";
   list($FeatureName)=mysql_fetch_array(mysql_query($query)); 
   $HTML.="<td> $FeatureName </td>";
}

是的,你已经把$HTML放在了每个循环的侧面。

以下是为您更正的代码截图。

$HTML="<table><tr>";
$i=0;
$count=0;
$query="SELECT features FROM products WHERE category='12'";
$res=mysql_query($query);
while(list($features)=mysql_fetch_array($res))
  {
$features = explode(',' , $features);
foreach($features as $x =>$key) {
   $i++;
   $count++;
$x >0;
       $query="SELECT FeatureName FROM products_features WHERE id='$key'";
       list($FeatureName)=mysql_fetch_array(mysql_query($query)); 
$HTML.="<td> $FeatureName </td>";
      if(($i%1)==0)
         $HTML.="</tr><tr>";
}
  }
$HTML.="</tr></table>";

附加到内部循环之外的$HTML。

相关内容

最新更新