2013-06-25 2 views
-3

Как я могу сделать что-то вроде этого:Выполните запрос с MySQL и PHP

$query = "SELECT a,b FROM c ORDER BY a"; 

$query1 = "SELECT a,b FROM '".$query."' WHERE a='".$number."'"; 

Спасибо очень

РЕАЛЬНЫЙ СЛУЧАЙ

$query2 = "SELECT numero,spartenza,sarrivo,opartenza,oarrivo FROM treni ORDER BY opartenza"; 

$query1 = "SELECT spartenza,sarrivo,opartenza,oarrivo,TIMEDIFF(oarrivo,opartenza) FROM (".$query2.") AS 'ordinata' WHERE numero = '".$id_treno."' ORDER BY opartenza"; 
+0

Это не безопасный запрос, не будучи синтаксически правильным. Вы должны использовать подготовленные заявления. Некоторые примеры здесь http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers – uKolka

+3

Просто так ясно, что OP просит, как выполнить подзапрос. – BLaZuRE

+0

Я также задаюсь вопросом, почему вы используете конкатенацию, если можете пойти с интерполяцией строк. Будет выглядеть чище. – uKolka

ответ

2

обернуть его в скобках:

$query1 = "SELECT a,b FROM (".$query.") AS `alias` WHERE a='".$number."'"; 

Подзапросы, подобные этому, необходимо быть псевдонимом.

MySQl Subquery Documentation

реальный случай

$ запрос = "SELECT spartenza, sarrivo, opartenza, oarrivo, TimeDiff (oarrivo, opartenza) ОТ Treni ГДЕ Numero =«". $ Id_treno." 'Заказать BY opartenza ";

Для этого вам не нужен подзапрос. Вы можете указать ORDER BY колонку, которую вы не выбираете. Одно из предложений, однако, было бы для псевдонима вашей функции TIMEDIFF, подобной этой, и ее будет легче получить.

$query = "SELECT spartenza,sarrivo,opartenza,oarrivo,TIMEDIFF(oarrivo,opartenza) AS `timediff_alias` FROM treni WHERE numero = '".$id_treno."' ORDER BY opartenza"; 
+0

Это не отвечает на вопрос, просто указывает на ошибку. – uKolka

+0

Фактически он отвечает на вопрос отлично –

+0

к сожалению не работает. Я получаю следующую ошибку: Предупреждение: mysqli_error() ожидает, что параметр 1 будет mysqli, null указан в /Applications/XAMPP/xamppfiles/htdocs/viewtreni.php в строке 134 – user2510406