И снова здравствуйте, мастера. Копался в скрипте, и пытался немного добавить ему функционала. Суть скрипта: автор создает тему, в ней оставляют комментарии, и у автора есть возможность выбора лучшего поста. Пост можно выбрать только один, и целесообразно ли так проверять (делать несколько таких проверок). Просто так потом может 100500 запросов на одну страницу быть Написано, только на обычно mysql, так что сильно не ругайте PHP: $id = intval($_GET['id']); $zakaz_uid = mysql_result(mysql_query("SELECT `who` FROM `zakaz` WHERE `id` = '$id' LIMIT 1"), 0); if(isset($_GET['executor']) && $user['id'] == $zakaz_uid) { $zid = intval($_GET['zid']); //если нажата кнопка выбор исполнителя, и id пользователя = id заказчика //если такая заявка существует $check_zayavka = mysql_result(mysql_query("SELECT COUNT(id) FROM `zayavka` WHERE `id` = '$zid'"), 0); //если исполнитель не выбран $check_executor = mysql_result(mysql_query("SELECT COUNT(id) FROM `zayavka` WHERE `id` = '$zid' AND `status` = '2'"), 0); if($check_executor == '0' AND $check_zayavka != '0') { mysql_query("UPDATE `zayavka` SET `status` = '2' WHERE `id` = '$zayavka'"); header('Location: index.php'); exit; } else echo 'Ошибка'; } Спасибо за внимание
1. Не совсем понятно... у каждой заявки свой уникальный id в таблице.... Зачем ты дополнительно вызываешь count, всегда же будет 1. Код (Text): $check_zayavka = mysql_result(mysql_query("SELECT COUNT(id) FROM `zayavka` WHERE `id` = '$zid'"), 0); 2. А нельзя в запросе Код (Text): $check_zayavka = mysql_result(mysql_query("SELECT COUNT(id) FROM `zayavka` WHERE `id` = '$zid'"), 0); Получить значение статуса и в пхп проверить это значение? Тогда не нужен будет второй запрос в базу.
прочитай про инъекции --- Добавлено --- а нельзя ли хранить выбранный ответ в поле в заявке и всё. он всегда будет гарантированно один.