[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка из базы данных
vasavaru
Помогите разабратся вот делаю выборку из базы

$result = mysql_query("SELECT * FROM gorod,kvartira,oblast,prodam,nomer,kluh,kluh2,kluh3,tel ORDER BY RAND()",$db);


и все работает


а как только добавляю еще одну ячейку для выборки не работает страница типа загружается бесконечно

$result = mysql_query("SELECT * FROM gorod,kvartira,oblast,prodam,nomer,kluh,kluh2,kluh3,tel,neim ORDER BY RAND()",$db);


не работает





Спустя 1 час, 48 минут, 48 секунд (4.12.2010 - 18:36) Игорь_Vasinsky написал(а):
синтаксис:

SELECT * FROM table

где * - все поля таблицы (или укажи какие надо)
table - имя таблице в том же регистре что и в БД

Спустя 5 часов, 23 минуты, 38 секунд (5.12.2010 - 00:00) SlavaFr написал(а):
@vasavaru твой запрос на столько безсмыслен, что я хотел бы в начале узнать для чего он нужен. Что можно зделать с результатом который содержит непонайтно какой город с непренадлежащей ему квартирой и не пренадлесжащим к ним областью и т.д. ?
наверное когда ты добавляеш дополнительную таблицу neim, то база может просто замахалась создавать cross tablе которая содержит кличество строк равное
количествогородов * количество квартир * количество областей ......

Спустя 12 часов, 57 минут, 44 секунды (5.12.2010 - 12:57) linker написал(а):
vasavaru
Гм, так ты не ячейки добавляешь, а целые таблицы, да еще и с ORDER BY RAND() мускул там наверное вешается.

Спустя 1 час, 3 минуты, 44 секунды (5.12.2010 - 14:01) vasavaru написал(а):
Я делаю генератор который генерирует обьявления и публикует их сразу на сайте поэтому и создано столько табличек и прописано ORDER BY RAND() чтоб все обьявления были уникальны

Спустя 1 час, 19 минут, 45 секунд (5.12.2010 - 15:21) sergeiss написал(а):
Цитата (linker @ 5.12.2010 - 13:57)
Гм, так ты не ячейки добавляешь, а целые таблицы

А я даже вот и не догадался об этом.... Афигеть можно smile.gif

Цитата (vasavaru @ 5.12.2010 - 15:01)
Я делаю генератор который генерирует обьявления


vasavaru - что бы ты ни делал, но запрос у тебя заведомо неверный. Потому что при таком подходе выбираются все возможные сочетания строк изо всех таблиц, в т.ч. и те, что не имеют смысла.
Допустим, у тебя в запросе есть 5 таблиц, содержащих 1000, 345, 432, 789 и 99 записей. Тогда общее количество выбранных строк будет равно 1000*345*432*789*99=11641663440000. Гм... Это примерно.... 11,641,663,440,000.... Порядка 11 тысяч гига-записей.... Ты уверен, что это то, что ты хочешь получить???? wink.gif Да еще и потом хочешь перемешать их в произвольном порядке...

Тут еще надо обязательно наложить условия взаимосвязи данных в разных таблицах. Почитай про CROSS JOIN, который ты хотел применить, но не знал, как это сделать правильно smile.gif Тогда количество выбранных строк у тебя не превысит количество записей в самой большой таблице. А если еще дополнительные условия наложить, то и того меньше будет.
Для приведенного выше примера это будет не больше 1000 строк.

Спустя 36 минут, 44 секунды (5.12.2010 - 15:58) SlavaFr написал(а):
Цитата (vasavaru @ 5.12.2010 - 11:01)
Я делаю генератор который генерирует обьявления и публикует их сразу на сайте поэтому и создано столько табличек и прописано ORDER BY RAND() чтоб все обьявления были уникальны

непонимаю зависимости между генерируемыми обявлениями и твоим запросом.
непонимаю как ORDER BY RAND() должен отвечать за уникальность обявления.

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

Спустя 1 час, 19 минут, 14 секунд (5.12.2010 - 17:17) Dron19 написал(а):
ORDER BY RAND() - таким образом генерации не добьешься, ORDER BY сортирует по полю! На выходе просто сам массив генерируй в этой самой функции

Спустя 5 часов, 19 минут, 8 секунд (5.12.2010 - 22:36) vasavaru написал(а):
вобщем нечево не понял надо учить еще php

Спустя 18 минут, 40 секунд (5.12.2010 - 22:55) sergeiss написал(а):
Цитата (vasavaru @ 5.12.2010 - 23:36)
вобщем ... надо учить еще php

Вывод абсолютно верный, посему ставлю + в карму smile.gif

Только добавлю, что надо еще SQL изучать. В частности, почитай про CROSS JOIN, который тебе нужен в данном случае.
Быстрый ответ:

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