|
|
|
| Уважаемые знатоки форума,
Может, кому-нибудь доводилось делать ЧПУ для архива, где запрашивается переменная date.
Дело в том, что когда url имел вид view_date.php?date=2013-08, все работало, список заметок по каждому месяцу выводился правильно. Но стоило изменить url на "человекопонятный" - /date/2013-08/, как при клике на определенный месяц стали выводиться ВСЕ заметки в БД (по всем месяцам). Сами урлы и ссылки вида /date/2013-08 получились, но кликая по ним, получаю не только заметки за эту дату, но и все остальные.
Подозреваю, что дело в том, как я прописал ЧПУ-замену:
RewriteRule ^date/([0-9]+)/? view_date.php?date=$1 [QSA,L]
|
т.е. [0-9], скорее всего, не тот формат для отображения даты вида 2013-08 (могу ошибаться).
В самом файле view_date.php для вывода заметок по датам используется сдедующий код:
<?php
$result2 = mysql_query("SELECT id,title,description,author,date FROM blogdata WHERE date>'$date_begin' AND date<'$date_end'",$db);
if (mysql_num_rows($result2) > 0)
{
$myrow2 = mysql_fetch_array($result2);
do
{
printf ("<table align='center' class='post'>
<tr>
<td class='post_title'>
<h2><a href='/post/%s' class='post_name'>%s</a></h2>
<p class='post_adds'>Дата публикации: %s</p>
<p class='post_adds'>Автор статьи: %s</p>
</td>
</tr>
<tr>
<td>
<p>%s</p>
<p><a href='/post/%s'>Читать дальше</a></p>
</td>
</tr>
</table><br>", $myrow2["id"], $myrow2["title"], $myrow2["date"],$myrow2["author"],$myrow2["description"],$myrow2["id"]);
}
while ($myrow2 = mysql_fetch_array($result2));
}
?>
|
Помогите, ПОЖАЛУЙСТА, разобраться, что я делаю не так. Возможно ли исправить через mod_rewrite? Или если нет, то какая есть альтернатива?
СПАСИБО!!! | |
|
|
|
|
|
|
|
для: newstarter
(26.08.2013 в 22:48)
| |
([0-9\-]+)
<?
if (mysql_num_rows($result2)) {
while ($myrow2 = mysql_fetch_assoc($result2)) printf ("<table align='center' class='post'>
<tr>
<td class='post_title'>
<h2><a href='/post/%s' class='post_name'>%s</a></h2>
<p class='post_adds'>Дата публикации: %s</p>
<p class='post_adds'>Автор статьи: %s</p>
</td>
</tr>
<tr>
<td>
<p>%s</p>
<p><a href='/post/%s'>Читать дальше</a></p>
</td>
</tr>
</table><br>", $myrow2["id"], $myrow2["title"], $myrow2["date"],$myrow2["author"],$myrow2["description"],$myrow2["id"]);
}
|
| |
|
|
|
|
|
|
|
для: confirm
(26.08.2013 в 23:44)
| | Уважаемый (-ая) Confirm, ВСЕ ПОЛУЧИЛОСЬ уже после добавления тире в регулярное выражение! Огромное СПАСИБО за помощь!!! | |
|
|
|
|
|
|
|
для: newstarter
(27.08.2013 в 19:21)
| | Я сократил ваш код не потому, что это и есть причина вашей проблемы (ваша проблема в неверном шаблоне была), а потому, что do ... while вообще и близко не нужно в данном случае, ну и получаете вы ряд не сказать чтобы не той функцией, просто используете ее не лучшим образом. По большому счету и printf тут совсем ни к чему.
Вот почему я выбросил из вашего кода лишнее. | |
|
|
|
|
|
|
|
для: confirm
(27.08.2013 в 19:30)
| | Огромное вам СПАСИБО за помощь и исправления!!! Очень выручили. | |
|
|
|