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 ループの外側に結果を出力すると、配列には 1 つの名前 (oxtitle) しかありません。そして、これは私が修正できないという私の問題です。
while ループの外側に結果が必要です。これは、ページの後半に IF ステートメントで入力する必要がある html テーブルがあるためです。
例:
<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>
これはほんの一例です。しかし、これは機能しません。配列内の原因は、たとえば「車」などの 1 つの名前 (oxtitle) だけです。したがって、ifステートメントは機能しません。それは次の場合にのみ機能します: if array == car.
解決策の 1 つは、while ループ内に if ループを含むすべてのテーブル html コードを配置することです。しかし、これは、echo '' などを使用して常に wile ループ内で作業する必要があることを意味します。そして、これはそれほどうまくありません。「私の」やり方で仕事をすることができる別の魂があることを願っています。if ステートメントを操作できるように、配列には while ループの外側でもすべての名前 (oxtitles) が含まれていることを意味します。
私の悪い英語でごめんなさい。あいさつ。