Перейти к содержимому

Сервис обмена электронных валют


Не могу разобраться с запросом

#1 Hardander

Hardander
  • Пользователь
  • 8 сообщений
  • Репутация: 0
0

Отправлено 12 Сентябрь 2012 - 14:14

Итак, встречаю я такой запрос:


$rows = $this->DATABASE->selectPage($totalRows, 'SELECT 1 vypusk, tabArticles.*, tabRubrics.*, tabNewsPaper.*, tabArticles.rating rating1, trTitle, tnpNumY FROM tabArticles, tabRubrics, tabNewsPaper WHERE tabArticles.show=1 AND trId = taRubricId AND tnpNumA = taNewsPaperNum AND taNewsPaperNum <> 2000000 AND taNewsPaperNum = '.$num_n.' AND tnpStatus <> 0
union all SELECT 2 vypusk, tabArticles.* , tabRubrics.*, tabNewsPaper.* , tabArticles.rating rating1, trTitle, tnpNumY FROM tabArticles, tabRubrics, tabNewsPaper WHERE tabArticles.show=1 AND trId = taRubricId AND tnpNumA = taNewsPaperNum AND taNewsPaperNum <> 2000000 AND taNewsPaperNum <> '.$num_n.' AND tnpStatus <> 0 '.$s.' LIMIT ?d,?d',$first, $limit);

Начинаю его читать: обращаемся к функции selectPage(), которая находится в переменной DATABASE, и DATABASE объявлена в текущем классе (надеюсь, правильно!).... Функция selectPage() содержит следующие аргументы: $totalRows, и объединенных запрос... И в этом сложном запросе мне не понятно следующее: после SELECT по идее должно идти название полей, откуда идет выборка... но полей 1 vypusk у меня нет ни в одной таблице... что это тогда есть и что сюда подставляется? И еще не понятна последняя часть запроса после LIMIT - ?d,?d',$first, $limit - что обозначают символы ?d,?d' - откуда они берутся и что в них подставляется?

 

 

  • 0

#2 DieGo

DieGo
  • Пользователь
  • 3 сообщений
  • Репутация: 0

Отправлено 19 Февраль 2013 - 23:31

SELECT не обязательно выборка по столбцу в таблице, это может быть даже выражение, например

SELECT 1 + 1;

на выходе будет

+------------+
| 1 + 1 |
+------------+
| 2 |
+------------+

а 1 vypusk у вас используется видимо для обозначения результатов запроса
при union all.


?d, ?d

Вместно них подставляются значения для LIMIT

указанные как аргументы: $first, $limit

например показать с 30ой записи 10 записей, обычно это используется для постраничной навигации!
  • 0


Оформление форума – IPBSkins.ru