Кажется, я не могу получить foreach для работы. Может я не правильно понимаю.
Вот мой код:
$statement = "SELECT * FROM categories ORDER BY name ASC";
$query = mysql_query($statement)
...
...
$cals = array("sports","general","other","clubs");
foreach ($cals as $value)
{
/* echo "<h3>".$value."</h3>";
*/ echo "<table width='100%'>";
while ($array = mysql_fetch_array($query))
{
if ($array['calendar'] == $value)
{?>
<tr>
<td><?php echo $array['name']; ?></td>
<td><a onclick="update_form('<?php echo $array['name']; ?>', '<?php echo $array['calendar']; ?>')" href="#">Edit</a></td>
</tr>
<?php }
}
echo "</table><br />Value: $value";
}
Цель этого - заставить foreach изменить оператор if. Я планировал в операторе if сказать: if ($array['calendar'] == "sports")
в первый раз, if ($array['calendar'] == "general")
во второй раз и так далее. Тем не менее, он показывает все таблицы (в исходном коде), но строки таблицы после первой для каждого значения массива не создаются. Например, я правильно вижу спортивную таблицу, но не вижу строк таблицы для общих, других или клубов. В этой базе данных есть записи, которые должны появиться в каждой из них. Может ли быть проблема с инструкциями while и if? Если я вручную установлю значение $ в операторе if на одно из значений в массиве, оно покажет правильные записи.
Чего мне не хватает?
Пример данных:
в базе данных MySQL -
таблица категорий.
поля:
- ID
- имя
- num_events
- календарь
- CALENDAR_URL
Все эти поля, кроме поля календаря, содержат фиктивные данные.
В настоящее время у меня там 5 записей. Каждый из них имеет разные значения календаря. Один - это спорт, один - клубы, а второй - вообще. В зависимости от того, какое значение я помещаю первым в массиве, оно показывает только одну таблицу из всех значений с любым первым значением в массиве.
Вот исходный код с получившейся страницы:
<table width='100%'><tr>
<td>test4</td>
<td><a onclick="update_form('test4', 'sports')" href="#">Edit</a></td>
</tr>
<tr>
<td>test5</td>
<td><a onclick="update_form('test5', 'sports')" href="#">Edit</a></td>
</tr>
</table><br />Value: sports<table width='100%'></table><br />Value: general<table width='100%'></table><br />Value: other<table width='100%'></table><br />Value: clubs