Как сделать ORDER BY с информацией, которая может изменяться?


Я взяв список статей, базы данных, и я хочу иметь одну страницу инструмент, который позволит мне перечислить их в порядке даты, которые были написаны или в алфавитном порядке.

Здесь у меня есть моя функция чтения банка:

$sel = DBRead('artigos', null ,'*', 'ORDER BY data ASC');

Если я оставляю data листинг производится начиная за сообщение старый, если я изменю nome список производится в алфавитном порядке.

Я создал форму в HTML с помощью "select" и два "options" внутри и с помощью метода POST, я могу получить значение одного из этих "option's" и поместить в переменную $mudanca.

, Но если я помещаю переменную в функцию чтения дает ошибку:

$sel = DBRead('artigos', null ,'*', 'ORDER BY $mudanca ASC');

какие-Либо предложения другой?

я Добавляю что-то, что может быть полезно кому-то, что создаете то же самое:

 <?php 
  $mudanca="data";
 if ($_SERVER["REQUEST_METHOD"] == "POST"){
 $mudanca = $_POST['mudar'];
 }   
 ?>

например, пусть переменная по умолчанию setada, потому что до того, как метод post вестись $совершает была бы пустой, вызывающих ошибку в ORDER BY $совершает.

Author: I Wanna Know, 2014-09-02

1 answers

Поместите так:

$sel = DBRead('artigos', null ,'*', "ORDER BY $mudanca ASC");

То есть двойные кавычки!

Заключено в одинарные кавычки в PHP не интерпретирует ничего, он ставит то, что в ней находится, как только текст, в то время как в двойные кавычки, если у вас есть переменные PHP, например, он будет интерпретировать и покажу вам результат.

$texto = 'imprime texto';
echo '$texto'; // saída -> $texto
echo "$texto"; // saída -> imprime texto

Пример Онлайн: Ideone

Или

Сцепление

$sel = DBRead('artigos', null ,'*', 'ORDER BY '.$mudanca.' ASC');

Приятного чтения.

 4
Author: Maria, 2014-09-02 22:41:18