[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Неверный вывод данных из выборки.
wh1skas
Коллеги, добрый день, мучаюсь уже дня 3...
Собственно вот есть у меня код:


<?PHP
$db->Query("SELECT * FROM db_battle_zayavka");
if($db->NumRows() == 0){
echo 'Заявок нет'; }
else {
while($zayavki = $db->FetchArray()) {

?>
<table>
<
tr class="htt">
<
td align="center"><?=$zayavki["id"]; ?></td>
<
td align="center"><?=$zayavki["creator"]; ?></td>
<
td align="center"><?=$zayavki["status"]; ?></td>
<
td align="center"><?=date("d.m в H:i:s",$zayavki["add_date"]); ?></td>
<
td align="center"><?=date("d.m в H:i:s",$zayavki["timeout"]); ?></td>

<?PHP
$db->Query("SELECT * FROM db_battle_zayavka");
$battle_zayavka_1 = $db->FetchArray();

if (($battle_zayavka_1['creator'] != $uname) AND ($battle_zayavka_1['opponent'] == 'Оппонент')) {
$text = '<td align="center"><form action="" method="post"><input type="hidden" name="accept_zayavka" value="'.$battle_zayavka_1['id'].'" />
<input type="submit" value="Принять" /></form></td>'
;
}

elseif (($battle_zayavka_1['creator'] != $uname) AND ($battle_zayavka_1['opponent'] == $uname)) {
$text = '<td align="center"><form action="" method="post"><input type="hidden" name="to_fight" value="'.$battle_zayavka_1['id'].'" />
<input type="submit" value="бой" /></form></td>'
;
}

elseif (($battle_zayavka_1['creator'] == $uname) AND ($battle_zayavka_1['opponent'] == 'Оппонент')) {
$text = '<td align="center"><form action="" method="post"><input type="hidden" name="otmena_zayavka" value="'.$battle_zayavka_1['id'].'" />
<input type="submit" value="отменить" /></form></td>'
;
}

elseif (($battle_zayavka_1['creator'] == $uname) AND ($battle_zayavka_1['opponent'] != 'Оппонент')) {
$text = '<td align="center"><form action="" method="post"><input type="hidden" name="to_fight" value="'.$battle_zayavka_1['id'].'" />
<input type="submit" value="бой" /></form></td>'
;
}
echo $text;
?>

</tr>
<?PHP
}
}

?>


Суть следующая:
1. User1 оставляет заявку на поедник. В таблице напротив своей заявки видит кнопку "отменить".
2. User2 заходит в таблицу заявок и видит заявку от User1 и напротив нее кнопку "принять". Если он нажимает кнопку "принять", выполняются действия, далее кнопка меняется на "бой", и там уже другая функция следует за ней. В этот момент у User1 кнопка тоже меняется на "бой". Вроде бы все работает, но работает в том случае, когда только 1 пользователь оставил заявку! Стоит еще одному юзеру оставить свою заявку, тут все летит вверх дном. А именно:
В таблице появляются 2 заявки на бой от пользователей:
User1 видит две заявки, и напротив каждой кнопка "принять", хотя одна из этих заявок его собственная, и напротив должна быть кнопка "отменить".
User2 видит две заявки, и напротив каждой кнопка "отменить", хотя одна из заявок чужая, и там должна быть кнопка "принять".

Как я понимаю, выборка доходит до первого ей подходящего условия и присваивает всем остальным то, что нашлось, а не продолжает для каждой записи выбирать нужное. Очень прошу помощи. Натолкните, как правильно сделать.

ЗЫ: Сами кнопки: "принять", "отменить" работают и несут свои функции, в базе работа проводится, после их выполнений.
Быстрый ответ:

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