此代码不起作用。我正在尝试获取功能名称列表。类别 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。