1. Базы данных
Свернутый текст
cups
-id
-name
cups_table
-id
-cup_id
-clan1 - clan63
cups_matches
-id
-cup_id
-clan1
-score1
-clan2
-score2
-number
2. Скрипт вывода таблицы команд
Свернутый текст
<?php
$cupID = $_GET['cup_id'];
$res = mysql_query("SELECT * FROM `cups_table` WHERE `cup_id` = '". $cupID ."'");
$table = mysql_fetch_array($res);
for ($i = 1; $i <= 63; $i++) {
if($table[clan.$i])
{
$clan[$i] = '<a href="/teams/'.$table[clan.$i].'/">'.getclanname($table[clan.$i]).'</a>';
$clan_country[$i] = '<img src="/images/flags/'. getclancountry($table[clan.$i]) .'.gif">';
}
else
$clan[$i] = 'n\a';
}
/* SCORE test */
/* Total Matches */
$total_matches = mysql_num_rows(mysql_query("SELECT * FROM `cups_matches` WHERE `cup_id` = '". $cupID ."'"));
for ($i = 1; $i <= $total_matches; $i++)
{
$match_number = $number[$i];
}
/* END test */
?>
<table width="100%">
<tr>
<td class="head2" align="center"><?php echo $cup['map1']; ?></td>
</tr>
</table>
<table width="100%" class="body2">
<tr>
<td width="5%" align="center"><?php echo $clan_country[1]; ?></td>
<td width="35%" align="left"><?php echo $clan[1]; ?></td>
<td width="5%" align="right"><?php echo getScore($cupID,1,'score1'); ?></td>
<td width="10%" align="center">VS</td>
<td width="5%"><?php echo getScore($cupID,1,'score2'); ?></td>
<td width="35%" align="right"><?php echo $clan[2]; ?></td>
<td width="5%" align="center"><?php echo $clan_country[2]; ?></td>
</tr>
<tr>
<td width="5%" align="center"><?php echo $clan_country[3]; ?></td>
<td width="35%" align="left"><?php echo $clan[3]; ?></td>
<td width="5%" align="right"><?php echo getScore($cupID,2,'score1'); ?></td>
<td width="10%" align="center">VS</td>
<td width="5%"><?php echo getScore($cupID,2,'score2'); ?></td>
<td width="35%" align="right"><?php echo $clan[4]; ?></td>
<td width="5%" align="center"><?php echo $clan_country[4]; ?></td>
</tr>
<tr>
<td width="5%" align="center"><?php echo $clan_country[5]; ?></td>
<td width="35%" align="left"><?php echo $clan[5]; ?></td>
<td width="5%" align="right"><?php echo getScore($cupID,3,'score1'); ?></td>
<td width="10%" align="center">VS</td>
<td width="5%"><?php echo getScore($cupID,3,'score2'); ?></td>
<td width="35%" align="right"><?php echo $clan[6]; ?></td>
<td width="5%" align="center"><?php echo $clan_country[6]; ?></td>
</tr>
<tr>
<td width="5%" align="center"><?php echo $clan_country[7]; ?></td>
<td width="35%" align="left">echo $clan[7];</td>
<td width="5%" align="right">echo getScore($cupID,4,'score1');</td>
<td width="10%" align="center">VS</td>
<td width="5%">echo getScore($cupID,4,'score2');</td>
<td width="35%" align="right">echo $clan[8];</td>
<td width="5%" align="center"><?php echo $clan_country[8]; ?></td>
</tr>
</table>
<table width="100%">
<tr>
<td class="head2" align="center"><?php echo $cup['map2']; ?></td>
</tr>
</table>
<table width="100%" class="body2">
<tr>
<td width="5%" align="center"><?php echo $clan_country[9]; ?></td>
<td width="35%" align="left"><?php echo $clan[9]; ?></td>
<td width="5%" align="right"><?php echo getScore($cupID,5,'score1'); ?></td>
<td width="10%" align="center">VS</td>
<td width="5%"><?php echo getScore($cupID,5,'score2'); ?></td>
<td width="35%" align="right"><?php echo $clan[10]; ?></td>
<td width="5%" align="center"><?php echo $clan_country[10]; ?></td>
</tr>
<tr>
<td width="5%" align="center"><?php echo $clan_country[11]; ?></td>
<td width="35%" align="left"><?php echo $clan[11]; ?></td>
<td width="5%" align="right"><?php echo getScore($cupID,6,'score1'); ?></td>
<td width="10%" align="center">VS</td>
<td width="5%"><?php echo getScore($cupID,6,'score2'); ?></td>
<td width="35%" align="right"><?php echo $clan[12]; ?></td>
<td width="5%" align="center"><?php echo $clan_country[12]; ?></td>
</tr>
</table>
<table width="100%">
<tr>
<td class="head2" align="center"><?php echo $cup['map3']; ?></td>
</tr>
</table>
<table width="100%" class="body2">
<tr>
<td width="5%" align="center"><?php echo $clan_country[13]; ?></td>
<td width="35%" align="left"><?php echo $clan[13]; ?></td>
<td width="5%" align="right"><?php echo getScore($cupID,7,'score1'); ?></td>
<td width="10%" align="center">VS</td>
<td width="5%"><?php echo getScore($cupID,7,'score2'); ?></td>
<td width="35%" align="right"><?php echo $clan[14]; ?></td>
<td width="5%" align="center"><?php echo $clan_country[14]; ?></td>
</tr>
</table>
<table width="100%">
<tr>
<td class="head2" align="center">WinneR</td>
</tr>
</table>
<table width="100%">
<tr>
<td class="body2" align="center"><?php echo $clan_country[15]; ?><?php echo $clan[15]; ?></td>
</tr>
</table>
Вывод таблицы :

3. Функции
Свернутый текст
function getScore($id,$num,$param)
{
$query = mysql_query("SELECT `". $param ."` FROM `cups_matches` WHERE `cup_id` = '". $id ."' AND `number` = '". $num ."'") or die(mysql_error());
$row = mysql_fetch_assoc($query);
return $row[$param];
}
function getclanname($clanID) {
$ds=mysql_fetch_array(mysql_query("SELECT `tag` FROM `teams` WHERE id='". $clanID ."'"));
return $ds['tag'];
}
function getclancountry($clanID)
{
$ds2 = mysql_fetch_array(mysql_query("SELECT `country` FROM `teams` WHERE `id` = '". $clanID ."'"));
return $ds2['country'];
}
$cup_query = mysql_query("SELECT * FROM `cups` WHERE `id` = '". $cupID ."'");
$cup = mysql_fetch_assoc($cup_query);
-----------------
Вывод команды : echo $clan[1], echo $clan[2] и т.д.
Вывод счета матча : getScore($cupID,1,$score1) , getScore($cupID,1,score2)
тоесть для каждого матча между командами приходится вписывать $num в функцию в ручную т.е для матча
FH vs Team3 нужно вписать getScore($cupID,1,scoreX)
а для команды ниже, таже функция только не 1 а 2, и т.д.
выглядит так:

можно ли както упростить вывод результата матча? или вобще вывод всей таблицы с результатами?
Спустя 1 час, 6 минут, 43 секунды (17.03.2010 - 19:19) Игорь_Vasinsky написал(а):
а в цикле нельзя сделать ?
посчитай скока команд и $num в цикле вормируй от 1 до max команд;
получишь массивчик, вот и ручки не нужны
посчитай скока команд и $num в цикле вормируй от 1 до max команд;
получишь массивчик, вот и ручки не нужны
Спустя 12 минут, 16 секунд (17.03.2010 - 19:32) Игорь_Vasinsky написал(а):
тока это не упрощение скрипта, а целенапрвленое использывание функций PHP

Спустя 2 минуты, 29 секунд (17.03.2010 - 19:34) DeeKeiD написал(а):
Дело в том что $num служит для идентификации матча между двух команд,
т.е допустим
и т.д... в циклах и цифрах я окончательно запутался, данный вывод я заимствовал из уже готового скрипта, но к сожалению там нету вывода результатов матча =(
в идеале хотелось бы иметь что-то вроде
т.е допустим
Команда 1 vs Команда 2 $num = 1
Команда 3 vs Команда 4 $num = 2
Команда 5 vs Команда 6 $num = 3
Команда 7 vs Команда 8 $num = 4
и т.д... в циклах и цифрах я окончательно запутался, данный вывод я заимствовал из уже готового скрипта, но к сожалению там нету вывода результатов матча =(
в идеале хотелось бы иметь что-то вроде
Команда 1 $score[1] vs $score[2] Команда 2
Команда 3 $score[1] vs $score[2] Команда 4
Команда 5 $score[1] vs $score[2] Команда 6
Команда 7 $score[1] vs $score[2] Команда 8
Спустя 6 минут, 46 секунд (17.03.2010 - 19:41) Игорь_Vasinsky написал(а):
а такой вариант возможен ?
Команда 1 $score[1] vs $score[2] Команда 8
Команда 1 $score[1] vs $score[2] Команда 8
Спустя 14 минут, 59 секунд (17.03.2010 - 19:56) DeeKeiD написал(а):
Если команда1 выйграет игру и попадёт в следующий тур как и команда8
то да такой варриант возможен
то да такой варриант возможен
Спустя 11 минут, 25 секунд (17.03.2010 - 20:07) Игорь_Vasinsky написал(а):
ну значит здесь всёё сложнее...
создавать турнирную таблицу и вписывать туды, удалять проигравшие команды, обновлять список....
другого варианта не вижу.
создавать турнирную таблицу и вписывать туды, удалять проигравшие команды, обновлять список....
другого варианта не вижу.

Спустя 6 минут (17.03.2010 - 20:13) DeeKeiD написал(а):
удалять команды из списка не выход ибо исходя из них построен вывод =(
Спустя 5 минут, 25 секунд (17.03.2010 - 20:19) Игорь_Vasinsky написал(а):
... тогда таблица типа группы, 1/16, 1/8 1/4 , полуфинал ?
Спустя 3 минуты, 58 секунд (17.03.2010 - 20:23) DeeKeiD написал(а):
несовсем понял...
сейчас у меня таблица выглядит так
$map1
$clan[1] vs $clan[2]
$clan[3] vs $clan[4]
$clan[5] vs $clan[6]
$clan[7] vs $clan[8]
$map 2
$clan[9] vs $clan[10]
$clan[11] vs $clan[12]
$map 3
$clan[13] vs $clan[14]
$winner
$clan[15]
и того для турнира на 8 команд нужно 15 полей в базе cups_table в каждом из которых находятся id команд которые собственно и формируют сетку
сейчас у меня таблица выглядит так
$map1
$clan[1] vs $clan[2]
$clan[3] vs $clan[4]
$clan[5] vs $clan[6]
$clan[7] vs $clan[8]
$map 2
$clan[9] vs $clan[10]
$clan[11] vs $clan[12]
$map 3
$clan[13] vs $clan[14]
$winner
$clan[15]
и того для турнира на 8 команд нужно 15 полей в базе cups_table в каждом из которых находятся id команд которые собственно и формируют сетку
Спустя 11 минут, 2 секунды (17.03.2010 - 20:34) Игорь_Vasinsky написал(а):
я не понял для чё утя 3 $map? команд сделай чётное количестов скажем 16, после первой партии игр (для каждой пары) останется 8 команд, потом 4 потом полуфинал, потом финал.
Спустя 46 секунд (17.03.2010 - 20:34) Игорь_Vasinsky написал(а):
я не понял для чё утя 3 $map? команд сделай чётное количестов скажем 16, после первой партии игр (для каждой пары) останется 8 команд, потом 4 потом полуфинал, потом финал.
Спустя 8 минут, 57 секунд (17.03.2010 - 20:43) DeeKeiD написал(а):
У меня изначально в таблице cups_table
id
cup_id
map1
map2
map3
map4
map5
clan1 - clan63
она ращитана на 32 команды, ибо это глобальная таблица для всех кубков начиная от 4 до 32 команд =)
т.е например в турните на 8 команд я использую только clan1 - clan15 на 16 команд больше
id
cup_id
map1
map2
map3
map4
map5
clan1 - clan63
она ращитана на 32 команды, ибо это глобальная таблица для всех кубков начиная от 4 до 32 команд =)
т.е например в турните на 8 команд я использую только clan1 - clan15 на 16 команд больше

Спустя 14 минут, 21 секунда (17.03.2010 - 20:58) Игорь_Vasinsky написал(а):
ох .. господи боже мой в кланах ещё команды.. я сча занятый , на до над этим хорошенько подумать, значит пока опиши сколько кланов, скока в клане команд, как формируется турнир
Спустя 32 минуты, 32 секунды (17.03.2010 - 21:30) DeeKeiD написал(а):
обновил первый пост

Спустя 9 минут, 47 секунд (17.03.2010 - 21:40) Night User написал(а):
mysql_num_rows(mysql_query("SELECT * FROM `cups_matches` WHERE `cup_id` = '". $cupID ."'"));
а чем не устраивает SELECT count(*) ........ тогда num_rows не нужна будет...
for ($i = 1; $i <= $total_matches; $i++)
{
$match_number = $number[$i];
}
что делает этот кусок кода?
разве не равносильно $match_number = $number[$total_matches]; и вообще что за переменные $match_number, $number[$i] или я туплю?
повторяющийся код однозначно в цикл
сорри, что без форматирования
если не сложно оставь скайп/аську - по-моему не лишним было бы пересмотреть структуру БД
а чем не устраивает SELECT count(*) ........ тогда num_rows не нужна будет...
for ($i = 1; $i <= $total_matches; $i++)
{
$match_number = $number[$i];
}
что делает этот кусок кода?
разве не равносильно $match_number = $number[$total_matches]; и вообще что за переменные $match_number, $number[$i] или я туплю?
повторяющийся код однозначно в цикл
сорри, что без форматирования
если не сложно оставь скайп/аську - по-моему не лишним было бы пересмотреть структуру БД
Спустя 2 минуты, 29 секунд (17.03.2010 - 21:42) DeeKeiD написал(а):
это я пытался сделать вывод матчей =(
skype: neutron_
skype: neutron_
Спустя 11 часов, 51 минута, 49 секунд (18.03.2010 - 09:34) Dezigo написал(а):
так в чём проблема?
в кланах ещё команды.
id_klanna parent
1 1
1 2
1 3
2 1
2 2
родитель и ребёнок.
cups_table
-id
-cup_id
-clan1 - clan63
Дерьмо код в цикле подключени функции ,запроса к BD
используй JOIN.чтобы вытащить инфу из cups_matches.
в кланах ещё команды.
id_klanna parent
1 1
1 2
1 3
2 1
2 2
родитель и ребёнок.
cups_table
-id
-cup_id
-clan1 - clan63
Дерьмо код в цикле подключени функции ,запроса к BD



используй JOIN.чтобы вытащить инфу из cups_matches.

_____________
Бесполезно просить пощады у цезаря
Фатальная ошибка : Звонок в неопределенную функцию ©