Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Из одной таблицы в несколько других

Из одной таблицы в несколько других


     28.06.2014    table, mysql, php    Общие вопросы по PHP, MySQL    2298

вопрос
Здравствуйте друзья. Сейчас вот столкнулся с такой проблемой:
Есть одна таблица: dle_tourn_8
Структура такая:
id_tourn | groupa_one | groupa_two | groupa_three | groupa_four | groupb_one | groupb_two | groupb_three | groupb_four
И есть другая таблица: dle_tournteam
Структура:
id_tourn | id_team

Смысл скрипта такой: Нужно достать все id команд, которые участвуют в турнире. Это сделать легко при помощи запроса (SELECT * FROM ... WHERE id_tourn='$tournid')

Вот как теперь засунуть абсолютно рандомно все эти id команд по разным группам. Есть 8 id, их нужно засунуть по группам.

Заранее спасибо

Ответил: D0Gmatist


ЕСЛИ Я ПРАВИЛЬНО ПОНЯЛ ТО

id_tourn | groupa_one | groupa_two | groupa_three | groupa_four | groupb_one | groupb_two | groupb_three | groupb_four

ЕСЛИ НЕ ВАЖНО ЧТО МОГУТ СОВПАСТЬ
цикл перебора {

    SELECT * FROM ... WHERE id_tourn='$tournid' ORDER BY Rand() LIMIT 1

}


ЕСЛИ ВАЖНО ЧТО БЫ НЕ СОВПАДАЛИ

$xx ="";

цикл перебора {

    $xxZ = "";
    $i = 0;
    if ( $xx ) {

        $xxExplode = explode( ",", $xx );

        foreach ( $xxExplode as $daten ) {

            $xxZ = ", `id_tourn` != " . $xxExplode[$i];

            $i ++;

        }
        
    }

    SELECT * FROM ... WHERE id_tourn='$tournid' $xxZ ORDER BY Rand() LIMIT 1

    if ( $переменная )
        $xx .= $xx . "," . $id_tourn;
    } else {
        $xx .= $id_tourn;
    }

}


Где то надо будет подправить так как без проверки это теория ))

3 комментария

Twelvee
Юзер

Twelvee - 28 июня 2014 21:02 -

А что за цикл перебора? Вот он как раз мне и нужен) Мне нужен пример insert запроса, если можно

D0Gmatist
Юзер

D0Gmatist - 28 июня 2014 21:07 -

ПРИМЕР
запрос в 2-е таблицы

// запрос в 2-е таблицы
$sql_result = $db->query( "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE director LIKE '%$director%' ORDER BY `years` DESC, `title` LIMIT " . $cstart . "," . $config['news_number'] );

while ( $row = $db->get_row( $sql_result ) ) { // цикл перебора массивов сформированных из результатов полученных из БД
// ****************
}

Twelvee
Юзер

Twelvee - 28 июня 2014 22:00 -

Окей, понял. Чтобы не создавать over9000 вопросов,
$ins = $db->query("INSERT INTO `" . PREFIX . "_tourn_8` (`id_tourn`,`groupa_one`,`groupa_two`,`groupa_three`,`groupa_four`,`groupb_one`,`groupb_two`,`groupb_three`,`groupb_four`,`winner`) VALUES ('$tournud','0','0','0','0','0','0','0','0','Empty')");


Какого черта этот запрос не работает? Ошибок не выдает, просто молчит.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх