ФорумПрограммированиеPHP для идиотов → Запрос

Запрос

  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 13:11, спустя 1 час 23 минуты 7 секунд


    А подробней с примером? … и мы поймём, что ты не понимаешь :)


    Да, пожалуйста) Кстати, буду очень благодарен, если поможете мне такому балбесу разобраться)

    Есть проект, браузерная игра, футбольный менеджер. Существует табличка футболистов. Должно быть десятки тысяч. Скажем по 20 футболистов для каждой команды, которых еще великое множество. При авторизации юзера, WHERE отрезает все, оставляя футболистов его команды.
    Что то типа показать состав. Создаю на пыхе запрос, отрезаю WHERE team=1. И показываю while($rows_count=fetch_assoc…)
    Все естественно залито на какой нить хостинг. Злостная Cpanel и phpMyAdmin.

    Где и каким еще таким хитрым способом, как говоритсья выше, я могу отрезать данные и только потом показать юзеру состав его команды? С помощью чего, какой файл, какие настрйоки и подключения?

    Может я и нубяря, ребята. Но раньше всегда делал так. Есть реальная, в отличии пока от не готового проекта вещь. 18000 записей и генерится все быстро.
  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 13:28, спустя 16 минут 40 секунд

    Если я правильно пример понял:

    Имеем таблицы "участники" и "команды".
    Участники разбиты по командам.

    Нужно научится:
    Для каждого пользователя-участника находить членов его команды.
    Спустя 6 сек.
    верно?
  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 13:31, спустя 3 минуты


    Если я правильно пример понял:

    Имеем таблицы "участники" и "команды".
    Участники разбиты по командам.

    Нужно научится:
    Для каждого пользователя-участника находить членов его команды.
    Спустя 6 сек.
    верно?


    Ну примерно, что то типо того
    Спустя 162 сек.
    тогда уж лучше правда, так:
    участники, команды, игроки.

    У участника есть команда, в которой игроки
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 14 сентября 2009 г. 13:36, спустя 5 минут 28 секунд

    Про join погугли
  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 13:38, спустя 1 минуту 44 секунды

    У меня связь есть. На пыхе я все сделал. Не понимаю про какой еще СУБД сейчас идет речь. Да и через пыху запросы обрабатывабтся на стороне сервера, то есть хостера. Какая нахрен разница тогда. Вот в чем вопрос.
  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 13:39, спустя 45 секунд

    99% даю на что все юзеры подключаются к БД под одним логином/паролем.
    И поэтому нельзя использовать контекстную переменную user (или как там) … и нам придется передавать в запрос имя участника самим.
    select *
    from member
    where group_id = (select group_id from member where nickname = :user_name)

    Если в сессии, при авторизации, сохранен и group_id участника, то подзапрос можно убрать и сразу подставлять :group_id.
  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 13:42, спустя 2 минуты 44 секунды


    99% даю на что все юзеры подключаются к БД под одним логином/паролем.
    И поэтому нельзя использовать контекстную переменную user (или как там) … и нам придется передавать в запрос имя участника самим.
    select *
    from member
    where group_id = (select group_id from member where nickname = :user_name)

    Если в сессии, при авторизации, сохранен и group_id участника, то подзапрос можно убрать и сразу подставлять :group_id.



    Где это писать, как настроить, что для этого нужно, что нибудь устанавливать? Вообще не занимался данным вопросом.
    Спустя 44 сек.
    Да и нужно ли оно? Выше отписывал…
  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 13:45, спустя 3 минуты 19 секунд

    Я Вам привел пример запроса, который для каждого участника вернет только его "коллег по команде"

    СУБД - Система Управления Базой Данных. Именно эта система и обрабатывает Ваши запросы.
    Спустя 117 сек.
    Я даже не знаю, что и написать.
    У Дуда хорошо получается отвечать в таких случаях …
  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 13:45, спустя 11 секунд

    Короче я так и не увидел разницы и не получил ответ на вопрос…
  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 13:50, спустя 5 минут 12 секунд

    Короче ты стал рассказывать, что всё у меня работает и нафиг переделывать.
    Короче ты проигнорировал слова Дуда, мои и Марио, что "выбрать всё в таблицу" – это плохо.
    Короче получилось, что я теперь должен умолять тебя: "посмотри, прочти, обрати внимание", а ты будешь отнекиваться и говорить, что у меня работает.

    Короче забей участников побольше в таблицу и посмотри на работу своего варианта "загоняй все в массив".
  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 13:55, спустя 5 минут 5 секунд


    Короче ты стал рассказывать, что всё у меня работает и нафиг переделывать.
    Короче ты проигнорировал слова Дуда, мои и Марио, что "выбрать всё в таблицу" – это плохо.
    Короче получилось, что я теперь должен умолять тебя: "посмотри, прочти, обрати внимание", а ты будешь отнекиваться и говорить, что у меня работает.

    Короче забей участников побольше в таблицу и посмотри на работу своего варианта "загоняй все в массив".


    1. Я вовсе, не хотел вас обидеть. Я не отнекивался и не говорил, что у вас что то не работает.
    2. Есть программа, с выводом на страницу данных. Записей в бд 18000. Рабоатет прекрасно.
    3. Юзер отправляет запрос по нажатию кнопки на сервер, то есть хостингу. После обработки сервером получает на выходе вырезанные даные. Какая разница, где могут тормоза? По момоему брехня.
    4. СУБД. Я вообще не понял, куда ставятся эти запросы и как их связать с моим проектом. Всегда делал все через пхп и sql запросы. Если объясните и покажете куда их вставлять и как с ними работать, буду благодарен.

    Вот теперь то и мне нечего сказать.))
  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 14:01, спустя 5 минут 27 секунд

    ЗЫ: Может быть не понимание в том, что я свой проект держу на стороннем сервере(хостере).
    А вы предлагаете домашний комп с установленным SQL server…
    А вообще, уже запутался…
  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 14:05, спустя 4 минуты 32 секунды

    Покажите кусок кода, который выбирает только необходимые данные.
    Спустя 99 сек.
    Не имеет значение, где стоит проект.
    Непонимание, наверное, в том, что СУБД - это класс программ.
    Одним из представителей этого класса является mySQL, которую вы, скорее всего, используете.
    Спустя 22 сек.
    Покажите код и всё станет на места.
  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 14:13, спустя 8 минут 3 секунды

    А что показывать?

    <?php
    $sql="SELECT………..WHERE……..";
    $result=mysql_query($sql);
    while ($rows_count=fetch_assoc….)

    echo'<table>';
    echo'<tr>';
    echo'<td>';
    echo $rows_count['id'];
    ….
    ….


    ?>


    Это показывать не имеет смысла наверное. Что еще?
  • }/{EHR

    Сообщения: 734 Репутация: N Группа: Адекваты

    Spritz 14 сентября 2009 г. 14:34, спустя 20 минут 16 секунд

    НЕ могу найти описание про параметр FIND_IN_SET

Пожалуйста, авторизуйтесь, чтобы написать комментарий!