我无法让我的 sql 查询结果在 while 循环之外完全工作。
我有一个这样的查询:
$result_artikel = mysql_query("SELECT DISTINCT oxtitle, FROM oxarticles a
INNER JOIN oxobject2category b ON a.oxid = b.oxobjectid
WHERE b.oxcatnid IN (SELECT oxcatnid FROM oxobject2category WHERE oxobjectid = '$term')ORDER BY oxtitle ASC")
or die(mysql_error()); ;
这会返回一些名称(oxtitle)。例如 5:
汽车,智能手机,椅子,桌子,饮料
在下一步中,我将此查询结果放入一个数组中并在 while 循环中输出它们
$Daten_artikel = array(
'name' => '',
'oxsort' => '',
'bild' => ''
);
while($row = mysql_fetch_array($result_artikel))
{
$Daten_artikel['name'] = $row['oxtitle'];
$Daten_artikel['oxsort'] = $row['oxsort'];
$Daten_artikel['bild'] = $row['oxpic1'];
echo '<br>' . "Name: ".$Daten_artikel['name'];
}
我将结果放在数组中的原因是我可以将它们输出到 while 循环之外。到目前为止,这有效,但是当我在 while 循环之外输出结果时,我在数组中只有一个名称(oxtitle)。这是我无法解决的问题。
我需要 while 循环之外的结果,因为我稍后在页面中有一个 html 表,该表必须由 IF 语句填充。
示例:
<table>
<tr>
<td>
<?php
if ($Daten_artikel['name'] == smartphone )
{
echo $Daten_artikel['name'];
}
?>
</td>
</tr>
<tr>
<td>
<?php
if ($Daten_artikel['name'] == chair)
{
echo $Daten_artikel['name'];
}
?>
</td>
<tr>
</table>
这只是一个例子。但这不起作用,因为数组中只有一个名称(oxtitle),例如“car”。所以 if 语句不能工作。它只适用于:如果数组 == 汽车。
一种解决方案是将我的所有表格 html 代码与 if 循环放在 while 循环中。但这意味着我必须始终使用 echo '' 等在 wile 循环内工作。这不是很好。我希望有另一个灵魂可以让我以“我的”方式工作。意味着即使在 while 循环之外,该数组也包含所有名称(oxtitles),因此我可以使用 if 语句。
对不起,我的英语不好。问候。