Календарный скрипт PHP

#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() для большего количества событий в тот же день?