|
|
|
|
|
для: [ANTI]CheateR
(18.08.2008 в 10:49)
| | Я там же и ответил. Поменьше, правда. | |
|
|
|
|
|
|
|
для: Trianon
(15.08.2008 в 22:30)
| | В аську зайдите, пожалуйста. Я вам там много чего написал | |
|
|
|
|
|
|
|
для: [ANTI]CheateR
(15.08.2008 в 21:43)
| |
while($row = mysql_fetch_assoc($res))
{
$points = 0;
for($i = 1; $i <=7 ; ++$i)
if($etalon["a$i"] == $row["a$i"] && $etalon["b$i"] == $row["b$i"])
$points += 10;
else if($etalon["a$i"]-$etalon["b$i"] == $row["a$i"] - $row["b$i"])
$points += 5;
else if($etalon["a$i"] == $row["a$i"] || $etalon["b$i"] == $row["b$i"])
$points ++;
if($points)....
|
| |
|
|
|
|
|
|
|
для: [ANTI]CheateR
(14.08.2008 в 19:05)
| | И снова здравствуйте.
Что-то я никак с циклом разобраться не могу. Подставил я вместо предложенного while цикл for(ну не хочу я чтоб в скрипте 8 раз повторялись одни и те же строки).
Не идет. Вот что у меня вышло:
$sql = "SELECT * FROM tur1 WHERE name='ETALON'";
$res = mysql_query($sql) or die("ERROR");
$etalon = mysql_fetch_assoc($res);
$sql2 = "SELECT * FROM tur1";
$res2 = mysql_query($sql2) or die("ERROR 2");
for($row = mysql_fetch_assoc($res2),$x=1;$x<=8;$x++)
{ $points = "0";
if($etalon['a$x']==$row['a$x'] && $etalon['b$x']==$row['b$x']) $points += 10;
else if ($etalon['a$x']-$etalon['a$x'] == $row['a$x'] - $row['a$x'] OR $etalon['a$x']-$etalon['a$x'] == $row['a$x'] - $row['a$x']) $points += 5;
else if($etalon['a$x']== $row['a$x'] OR $etalon['b$x']==$row['b$x']) $points+=1;
if($points) {mysql_query("UPDATE tur1 SET points = $points WHERE id=".$row[id]) or die(ERROR);}
}
;
|
Вообще голова не соображает уже, у меня заносит в поле etalon очки.
Подскажите, пожалуйста, что изменить. | |
|
|
|
|
|
|
|
для: Trianon
(12.08.2008 в 17:08)
| | Здравствуйте, товарищ Trianon.
Я вам в аську писал, вы мне че то не ответили, решил сюда написать, а то процесс написания сайта встал, а это не есть хорошо.
Поменял я после вашего намёка имена матчей в таблице.
Я так понял, цифрами надо было делать чтоб потом в цикле инкремент ставить ?
Ну было у меня a1 a2, изменил я на 1, 9, 2, 10 ... 8, 16.
Запрос:
mysql_query("INSERT INTO tur1 (id, name, date, 1, 9,
2, 10, 3,11, 4,12, 5,13, 6,14, 7,15, 8,16)
VALUES (null, 'ETALON', '$date', '$a1','$a2',
'$b1','$b2','$c1','$c2','$d1','$d2','$e1','$e2','$f1','$f2'
,'$g1','$g2','$h1','$h2')")
or die(mysql_error());
|
Не записывает.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1, 9, 2, 10, 3,11, 4,12, 5,13, 6,14, 7,15, 8,16) VALUES (null, 'ETALON', '121872' at line 1
Ну всё вроде. Жду ответа )) | |
|
|
|
|
|
|
|
для: [ANTI]CheateR
(12.08.2008 в 16:25)
| | >А можно в двух словах описать как в данном случае по-человечески организовать бд ?
Так я в двух и написал.
А подробности зависят от предметной области. От того, как туры проходят, какие команды участвуют, как ставки делают и прочее прочее прочее. | |
|
|
|
|
|
|
|
для: Trianon
(12.08.2008 в 15:30)
| | А можно в двух словах описать как в данном случае по-человечески организовать бд ?
А насчет переменных, что в голову пришло первым, то и написал. Согласен, глуповато )) | |
|
|
|
|
|
|
|
для: [ANTI]CheateR
(12.08.2008 в 15:26)
| | Нет, это мне хотелось бы уточнить.
А если матчей будет не семь, а три? А если не три, а пятнадцать?
А что будет с таблицей в следующем туре?
Способ попроще есть. Только для этого надо схему БД организовать по-человечески.
А с Вашей таблицей семь раз скопированный фрагмент, ей-богу, цена невеликая.
Это ж, блин, надо выдумать было - нумеровать данные матчей БУКВАМИ! | |
|
|
|
|
|
|
|
для: Trianon
(12.08.2008 в 13:13)
| | Хотелось бы уточнить.
if($etalon['a1'] == $row['a1'] && $etalon['a2'] == $row['a2'])
$points += 10;
else if($etalon['a1']-$etalon['a2'] == $row['a1'] - $row['a2'])
$points += 5;
|
Это ведь у меня только по первому матчу обрабатывается.
Получается, что мне надо эти строки копирнуть 7 раз и везде поменять имена переменных.
Нет ли способа попроще ?
Может опять через цикл, только чтоб имена переменных менял ? | |
|
|
|
|
|
|
|
для: [ANTI]CheateR
(12.08.2008 в 12:46)
| | берем данные о истинном результате:
<? $sql = "SELECT * FROM tbl WHERE `name` = 'ETALON'";
$res = mysql_query(sql) or die "Error in $sql: ". mysql_error();
$etalon = mysql_fetch_assoc($res);
|
пробегаем все строки и обновляем очки.
<? $sql = "SELECT * FROM tbl";
$res = mysql_query(sql) or die "Error in $sql: ". mysql_error();
while($row = mysql_fetch_assoc($res))
{
$points = 0;
if($etalon['a1'] == $row['a1'] && $etalon['a2'] == $row['a2'])
$points += 10;
else if($etalon['a1']-$etalon['a2'] == $row['a1'] - $row['a2'])
$points += 5;
.....
if($points)
{
$sql = "UPDATE tbl SET points = $points WHERE id = ".$row['id'];
$upres = mysql_query(sql) or die "Error in $sql: ". mysql_error();
}
}
|
| |
|
|
|
|