Заказ по динамической оговорке MYSQL. Использование $ _REQUEST - PullRequest
0 голосов
/ 03 ноября 2010

На моей странице есть меню перехода к переменной $ _REQUEST, позволяющее людям изменять порядок ASC или DESC к post_time.

Проблема в том, что по умолчанию используется порядок DESC и он работает без изменения переменной URL $ _REQUEST.

Вот что у меня есть:

меню перехода:

<form name="form" id="form">

<select name="jumpMenu" id="jumpMenu" onchange="MM_jumpMenu('parent',this,0)">
<option value ="?post_time=DESC" 
 <?php echo ($_REQUEST['post_time']=='DESC')?"selected":"";?> >DESC</option>
<option value ="?post_time=ASC" 
<?php echo ($_REQUEST['post_time']=='ASC')?"selected":"";?> >ASC</option>  
</select>

</form>

Заказ по пункту:

ORDER BY post_time {$_REQUEST['post_time']}

Как я уже сказал, это прекрасно работает, если вы открываете страницу, но по умолчанию это ASC, я попытался установить переменную на = "DESC" вверху, и она работает, но тогда она не изменится на ASC.

Какие-нибудь быстрые идеи?

Заранее спасибо !!

Ответы [ 3 ]

0 голосов
/ 03 ноября 2010

1001 * попробовать *

<option value ="DESC" 
 <?php if(isset($_REQUEST['post_time']) && $_REQUEST['post_time']=='DESC') { print " selected=\"selected\"";}?> >DESC</option>
<option value ="ASC" 
 <?php if(isset($_REQUEST['post_time']) && $_REQUEST['post_time']=='ASC') { print " selected=\"selected\"";}?> >ASC</option>

Я бы тоже не советовал вам делать это:

ORDER BY post_time {$ _REQUEST ['post_time']}

Попробуйте:

$order = 'ASC'; // Default

// Check for DESC as ASC is the default
if(isset($_REQUEST['post_time']) && $_REQUEST['post_time'] == 'DESC') {
   $order = 'DESC';
}

ORDER BY post_time {$order}

Я думаю, что эта страница показывает хороший пример того, чего вы пытаетесь достичь:

http://www.w3schools.com/PHP/php_ajax_database.asp

0 голосов
/ 03 ноября 2010

Никогда не используйте $ _REQUEST.Это постельная практика.И

ORDER BY post_time {$ _REQUEST ['post_time']}

тоже не очень приятно.Не забудьте экранировать все введенные пользователем данные с помощью mysql_real_escape_string.

2 предыдущих совета достаточно хороши, добавить нечего

0 голосов
/ 03 ноября 2010

Вы пробовали:

<form name="form" id="form">

<select name="post_time" id="jumpMenu" onchange="MM_jumpMenu('parent',this,0)">
<option value ="DESC" 
 <?php if(($_REQUEST['post_time']=='DESC')||(!isset($_REQUEST['post_time']))){echo"'selected'";}?> >DESC</option>
<option value ="ASC" 
<?php if($_REQUEST['post_time']=='ASC'){echo"'selected'";}?> >ASC</option>  
</select>

</form>
...