GD Star Raiting и динамическая сортировка

Никак не пойму как добавить запрос на сортировку по рейтингу вида query_posts("gdsr_sort=rating");
в динамическую сортировку Dimox`a типа

if ($_POST[‘select’] == ‘title’) { $order = "&orderby=title&order=ASC"; $s1 = ‘ selected="selected"’; $s2 = ”; }
if ($_POST[‘select’] == ‘newest’) { $order = "&orderby=cost&order=DESC"; $s2 = ‘ selected="selected"’; }
if ($_POST[‘select’] == ‘oldest’) { $order = "&orderby=cost&order=ASC"; $s3 = ‘ selected="selected"’; $s2 = ”; }
if ($_POST[‘select’] == ‘rating_h’) { $order = что сюда писать? ; $s4 = ‘ selected="selected"’; $s3 = ”; }
?>
?>
<form method="post" id="order">
<?php _e(‘Sort by’, ‘article-directory’); ?>:
<select name="select" onchange=’this.form.submit()’>
<option value="title"<?=$s1?>><?php _e(‘Title’, ‘article-directory’); ?></option>
<option value="newest"<?=$s2?>><?php _e(‘Newest’, ‘article-directory’); ?></option>
<option value="oldest"<?=$s3?>><?php _e(‘Oldest’, ‘article-directory’); ?></option>
<option value="rating_h"<?=$s4?>>По рейтингу</option>
</select>
</form>

Прошу помощи!!!

Наверное знающие люди еще не закончили праздновать Новый год!
Все еще жду совета, 🙂
Заранее спасибо за помощь.

вот интересно, оказалось что если вывод делать <?php $posts = query_posts (order); ?> или <?php query_posts($order); ?> , то строка вида

if ($_POST [‘select’]== ‘rating’) { $order = «gdsr_sort=rating&sort_order=asc»; $s5 = ‘ selected="selected"’; $s4 = ”; }

работает, а если вывод сделать

<?php $posts = query_posts ($query_string . $order); ?>

то сортировка по рейтингу от GD star rating работать перестает, а стандартные сортировки по $orderby работают.

Почему из-за $query_string перестают работать команды GD star rating?

Есть предположения?

Чем отличается вывод вида <?php query_posts($order); ?>
от вывода <?php $posts = query_posts($query_string . $order); ?>

Я надеюсь, в коде не такие кавычки, как в посте.
«gdsr_sort=rating&sort_order=asc»

Как минимум, не хватает амперсанда в месте "склейки" $query_string и доп.параметров.

Я надеюсь, в коде не такие кавычки, как в посте.
«gdsr_sort=rating&sort_order=asc»

Как минимум, не хватает амперсанда в месте "склейки" $query_string и доп.параметров.

кавычки верхние.
не знаю что вы имели ввиду насчет амперсанта, но код рабочий я его изменяю только.
<?php $posts = query_posts($query_string . $order); ?> эта строка работает, только почему-то мешает сортировке GD star raiting

а можно подробнее, и что насчет моего последнего поста?

а можно подробнее

В $query_string находится строка, представляющая собой пары параметр=значение, разделенные &. Когды Вы цепляете ему в хвост "gdsr_sort=rating&sort_order=asc", то значение последнего параметра из $query_string слипается с gdsr_sort, образуя бред. Между ними должен быть &.

и что насчет моего последнего поста?

Вы думаете, я настолько внимательно слежу за Вашим творчеством, что знаю, какой Ваш пост последний?

А куда в строке <?php $posts = query_posts($query_string . $order); ?> ставить амперсант?

и отчего без амперсанта вот эти строки работают
if ($_POST[‘select’] == ‘title’) { $order = "&orderby=title&order=ASC"; $s1 = ‘ selected="selected"’; $s2 = ”; }
if ($_POST[‘select’] == ‘newest’) { $order = "&orderby=cost&order=DESC"; $s2 = ‘ selected="selected"’; }
if ($_POST[‘select’] == ‘oldest’) { $order = "&orderby=cost&order=ASC"; $s3 = ‘ selected="selected"’; $s2 = ”; }

как и остальные стандартные параметры сортировки, а эта строка

if ($_POST [‘select’]== ‘rating’) { $order = «gdsr_sort=rating&sort_order=asc»; $s5 = ‘ selected="selected"’; $s4 = ”; }

уже не работает?

<?php $posts = query_posts($query_string & $order); ?>

так тоже не работает 🙁

<?php $posts = query_posts($query_string & $order); ?>

так тоже не работает :-(

Такое работать не может, потому что значит совсем не то, что Вы себе думаете 🙂

query_posts($query_string . "&" . $order);

Учите PHP!

Еще раз: это то, что касается синтаксиса, логика параметров – второй вопрос.

урааа! заработало!!! Большое Вам человеческое спасибо 🙂

Anonymous
Отправить
Ответ на: