[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Куда класть код запросов
Эдик
Здравствуйте. У меня такой общий вопрос: вот у меня есть 5 запросов в mysql, все довольно объемные, не хочется их засовывать в основной код. Как текст этих запросов можно разделить с самой функцией запроса, те текст засунуть куда-либо, а потом одной строкой поделючить. При этом в запросы мне нужно подставлять некоторые переменные. Пробовал тексты запроса определять как константы, но тогда переменные не вставляются.



Спустя 2 минуты, 40 секунд (10.10.2011 - 19:32) bulgakov написал(а):
Может отдельный файлик, каждый запрос в отдельную переменную, потом инклюдить и в основном коде использовать соответствующую переменную с запросом?

Спустя 44 секунды (10.10.2011 - 19:33) caballero написал(а):
А куда их еще можно засунуть как не в код? Проблеммма яйца выеденного не стоит
Компилятору чихать где ты что записал.
Отделят нужно логику от представления (в разумных пределах) и одни функции бизнес-логики от других. Остальное - от лукавого.

Спустя 56 секунд (10.10.2011 - 19:34) Игорь_Vasinsky написал(а):
Запрос в *.sql

далее

define("SQL", file_get_contents("path_to/file.sql"));

mysql_query(SQL) or die(mysql_error());

Спустя 1 минута, 24 секунды (10.10.2011 - 19:35) Эдик написал(а):
Типа
$qw="SELECT
MOD_ID,
TEX_TEXT AS MOD_CDS_TEXT,
MOD_PCON_START,
MOD_PCON_END
FROM
MODELS
INNER JOIN COUNTRY_DESIGNATIONS ON CDS_ID = MOD_CDS_ID
INNER JOIN DES_TEXTS ON TEX_ID = CDS_TEX_ID
WHERE
MOD_MFA_ID =
$id AND
CDS_LNG_ID =
$lang AND
MOD_PCON_START >
$year
ORDER BY
MOD_CDS_TEXT"
;
И вызов
$id=3;
$lang=16;
$year=1990;
$query=mysql_query($qw);

Если я сделаю такой запрос, то подставиться вместо $id в запросе 3?

Спустя 51 секунда (10.10.2011 - 19:36) caballero написал(а):
Цитата
Запрос в *.sql


И ради чего 5 раз обращатся к файловой системме?

Спустя 49 секунд (10.10.2011 - 19:37) bulgakov написал(а):
Если я сделаю такой запрос, то подставиться вместо $id в запросе 3?
а почему нет?
Цитата
mysql_query(SQL) or dile(mysql_error());

Очепятался?

Спустя 46 секунд (10.10.2011 - 19:38) caballero написал(а):
Цитата
Если я сделаю такой запрос, то подставиться вместо $id в запросе 3?


Переменные инициализируются ДО использования а не ПОСЛЕ.

Спустя 2 минуты, 2 секунды (10.10.2011 - 19:40) Эдик написал(а):
Ну мне нужно, чтобы вместо этих $id, $year, $lang при каждой отправке запроса подставлялись текущие значения этих переменных

Спустя 2 минуты (10.10.2011 - 19:42) caballero написал(а):
sprintf юзай

Спустя 3 минуты, 10 секунд (10.10.2011 - 19:45) Эдик написал(а):
Блин точно, caballero, спасибо, как я сам не додумался

Спустя 3 минуты, 58 секунд (10.10.2011 - 19:49) Игорь_Vasinsky написал(а):
Цитата
И ради чего 5 раз обращатся к файловой системме?


Цитата
Как текст этих запросов можно разделить с самой функцией запроса, те текст засунуть куда-либо, а потом одной строкой поделючить

Спустя 24 секунды (10.10.2011 - 19:49) kovaldm написал(а):
Запиши запросы в БД, затм доставай нужный запрос другим запросом, который храни в отдельном файле файле, путь к которому записан в той же БД, а путь можно достать самым простым запросом, который можно поместить прямо в код программы.

Спустя 2 минуты, 20 секунд (10.10.2011 - 19:52) bulgakov написал(а):
Цитата
Запиши запросы в БД, затм доставай нужный запрос другим запросом, который храни в отдельном файле файле, путь к которому записан в той же БД, а путь можно достать самым простым запросом, который можно поместить прямо в код программы.

В доме который построил Джек...

Спустя 1 минута, 1 секунда (10.10.2011 - 19:53) Игорь_Vasinsky написал(а):
biggrin.gif biggrin.gif biggrin.gif

Спустя 2 минуты, 32 секунды (10.10.2011 - 19:55) caballero написал(а):
Цитата
Запиши запросы в БД, затм доставай нужный запрос другим запросом, который храни в отдельном файле файле, путь к которому записан в той же БД, а путь можно достать самым простым запросом, который можно поместить прямо в код программы.


Еще лучше - пять файлов не для серьезных пацанов. Давайте еще БД заюзаем. Но тот отдельный запрос тоже надо в базу в отдельную таблицу. а в файле хранить имена таблицы. А вобще для таких дел выделенных сервер лучше.

Спустя 3 минуты, 48 секунд (10.10.2011 - 19:59) Эдик написал(а):
Да все, все, вопрос решился в пользу sprintf. А кстати если буду по методу Игорь_Vasinsky подключать, то sprintf будет работать?

Спустя 4 минуты, 57 секунд (10.10.2011 - 20:04) Игорь_Vasinsky написал(а):
Суть дела не меняет.
Сервер возратит ответ, а значит всё нормуль.

Спустя 3 минуты, 37 секунд (10.10.2011 - 20:08) Эдик написал(а):
А и еще, чтобы не создавать новую тему, что можно дописать в запрос, чтобы он возвратил только неповторяющиеся значения. Но фишка в том, что он находит несколько нужных полей, кажлому из которых соответствует значение, например 10. Как сделать в запросе, чтобы мне вывело только одну 10?

Спустя 2 минуты, 55 секунд (10.10.2011 - 20:11) Эдик написал(а):
Только не "нужных полей", а нужных строк

Спустя 22 минуты, 35 секунд (10.10.2011 - 20:33) Игорь_Vasinsky написал(а):
Почитай про DISTINCT или GROUP BY

Спустя 15 минут, 15 секунд (10.10.2011 - 20:48) caballero написал(а):
distinct
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.