#php #mysql
#php #mysql
Вопрос:
Я пытаюсь создать приложение календаря.
У меня проблема со способом отображения дат С событием.
Я пробовал это:
$nuvarende_maned=date("m");
$sql=("SELECT * FROM kalender WHERE begivenhed_maned='$nuvarende_maned'");
$result=mysql_query($sql);
$count=mysql_num_rows($result);
$row=mysql_fetch_array($result);
echo "<div id='kalender'>";
for($a=1;$a<=date("t");$a ){
$dag_m_begivenhed = $row['begivenhed_dag'];
if($count>=1 amp;amp; $dag_m_begivenhed == $a){
echo "<div class='kalender_dag'><a title='$row[begivenhed_overskrift]' href=''>".$a."</a></div>";
} else {
echo "<div class='kalender_dag'>".$a."</div>";
}
}
echo "</div>";
Он печатает одну дату с событием. Мне нужен какой-то способ при создании цикла while(). Но я не могу понять, где его разместить.
Я пробовал while() внутри for(), но это не работает.
Я знаю, что у меня есть $row=mysql_fetch_array ($result); в начале, и именно поэтому у меня всегда будет только первое совпадение из базы данных. Я просто сделал это, чтобы посмотреть, не вышло ли что-нибудь из БД.
Ответ №1:
Вам нужно будет получить все события календаря, ПРЕЖДЕ чем переходить к циклу генерации календаря. Прямо сейчас вы получаете только первую строку результатов запроса, а остальные отбрасываете (mysql_fetch_array возвращает одну СТРОКУ в виде массива, а не весь набор результатов).
$events = array();
$sql = "SELECT * FROM kalender WHERE begivenhed_maned='$nuvarende_maned'";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
$events[$row['begivenhed_dag']] = $row;
}
for ($a = ...) {
if (isset($events[$a])) {
... output whatever parts of $events[$a] you want
}
}
Обратите внимание, что это не обрабатывает несколько событий за один день. Если вам нужна эта возможность, вам придется немного изменить цикл выборки базы данных, чтобы он сохранял эти множественные события в подмассиве.
Комментарии:
1. Пока это работает! : o) Но, может быть, вы могли бы сказать мне, что здесь происходит? И, может быть, покажите мне, как создать sub_array() для большего количества событий в тот же день?