Обьясните код пожалуйста, а то я не пойму что тут и зачем PHP: <?php $query = mysql_query ("SELECT id, image FROM gallery WHERE (image = '$image') LIMIT 1"); if (mysql_num_rows ($query) == 0) { mysql_query ("UPDATE gallery SET image = '$image' WHERE id = '$id'"); echo "<b>Изображение успешно изменено !!!</b>"; } else { while ($img = mysql_fetch_array($query)) if($img['image'] != $image) { echo "<b>Такое изображение уже существует !!!</b>"; } else { mysql_query ("UPDATE gallery SET image = '$image' WHERE id = '$id'"); } } ?> Заранее спасибо[/php]
запросом вытаскиваются ID и IMAGE поля таблицы GALLERY, где поле IMAGE равно контейнеру $image, возвращается только 1 строка если (запрос пуст) { апдейтим таблицу GALLERY, устанавливаем в поле IMAGE значение контейнера $image, где поле ID равняется контейнеру $id } иначе { если (поле IMAGE не равно контейнеру $image) { говорим, что такое уже есть } иначе { апдейтим таблицу GALLERY, устанавливаем в поле IMAGE значение контейнера $image, где поле ID равняется контейнеру $id } } ---- на самом деле бред написан. второй IF никогда не будет TRUE. видимо, хотели вот это написать: PHP: <?php $query = mysql_query (' SELECT id FROM gallery WHERE image = \''.$image.'\' LIMIT 1 '); if (mysql_num_rows($query) == 0) { mysql_query (' UPDATE gallery SET image = \''.$image.'\' WHERE id = \''.$id.'\' '); echo '<b>Изображение успешно изменено!</b>'; } else { mysql_query (' UPDATE gallery SET image = \''.$image.'\' WHERE id = \''.$id.'\' '); }; ?> откуда контейнер $id берётся - непонятно.
Все суть в том, что если при редактировании картинка не меняеться, то ошибки не выдает. Если же изменяеться, то проверяеться есть ли уже такая. Если есть, то ошибка. Если нету, то все ок. Мне надо такая проверка. А id береться из GET
если Код (Text): $query = mysql_query ("SELECT id, image FROM gallery WHERE (image = '$image') LIMIT 1"); то либо вернётся пустой ответ (ноль записей, ноль строк), либо Код (Text): $img['image'] всегда будет раво Код (Text): $image потому как пытаетесь проверить равенство поля, где заранее указали, что оно обязательно должно быть равно
А не могли бы вы написать такой код и прокоментировать каждую строку? просто мне очень важно разобраться в этом. Спасибо
Andrey5555 код уже написан - и ваш, что изначально давали, да и исправленный вариант я вам написл уже. кстати только что заметил, что у меня тоже бред написан, ггг )))) один и тот же запрос продублирован в условии... вот: PHP: <?php $query = mysql_query (' SELECT id FROM gallery WHERE image = \''.$image.'\' LIMIT 1 '); if (mysql_num_rows($query) == 0) { mysql_query (' UPDATE gallery SET image = \''.$image.'\' WHERE id = \''.$id.'\' '); if (mysql_error()) { echo '<b>Ошибочка вышла!</b><br>('.mysql_errno().') '.mysql_error(); } else { echo '<b>Изображение успешно изменено!</b>'; }; }; ?> что касается разборки кода - советую скачать и просмотреть мануалку, по каждому моменту - это вам поможет более, чем мои комментарии.
Я в сам код понимаю. Я не понимаю сам процес. Как проследить изменились данные или остались прежними, и если они остались прежними то не сравнивать их уже с существующими, а просто оставить как есть? Мой код работает правильно, только я не понимаю. Обьясните пожалуста. Если не трудно то напишите мне в асю 499147889. Буду очень благодарен.
Andrey5555 в вашем коде ошибка в логике, а не в построении самого кода. судя по всему, у вас просто не очень большой опыт программирования и разбора чужого кода, иначе уже давно подняли бы уровень своего логического мышления. отсутствие подобной логики не является плохим, это просто факт - как худощавые, сухожильные, накаченные и толстые. в любой момент каждый может стать тем, кем хочет - надо просто определённое количество времени и усилий силы воли. изучайте опенсурсные движки открывая код и прослеживая всю логику, на подхвате мануалку - чтобы точно понимать о чём речь. сам ваш код и его предназначение мне лично непонятно, нелогично - вы изменяете идентификатор, основной параметр записи (как правило) в зависимости от значения поля IMAGE. вы пытаетесь вытащить IMAGE и ID, но они вам оба уже известны - они у вас в контейнерах лежат, вам же только надо понять есть ли запись с соответствующими параметрами. ладно, щас стукнусь...