|
|
|
| Здравствуйте товарищи!
Вопрос следующего характера:
Есть таблица:
CREATE table photo (photoid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name TINYTEXT NOT NULL,
photo TINYTEXT NOT NULL,
photo_os TINYTEXT NOT NULL
|
В базу данных записываются ссылки на фотографии (поле photo и photo_os):
Сами фотографии хранятся в каталоге на сервере:
Я хочу сделать чтобы при выводе базы с фотографиями около каждой фотографии появлялась radiobutton и если ее выбираешь и нажимаешь кнопку удалить, шел запрос к базе данных на удаление именно этой фотографии и из бд, и из каталога:
Скрипт вывода:
<?php
require_once("config.php");
$sql="select * from photo";
$result=mysql_query ($sql);
if (!$result) exit(mysql_error());
$rows = mysql_num_rows ($result);
echo "<form action=view.php method=get>";
echo "<table class=content border=1 align=center cellpadding=5 cellspacing=0>";
echo "<tr>";
echo "<td align=center><b>№</b></td>";
echo("<td align=center class=2><b>".Название."</b></td>");
echo("<td class=2 align=center><b>".Фотография1."</b></td>");
echo("<td class=2 align=center><b>".Фотография2."</b></td></tr>");
for ($i=0;$i<$rows;$i++)
{
if ($i%2==0) $color='white';
else $color='pink';
$arr_quest=mysql_fetch_array($result);
echo "<tr>";
echo "<td class=3 bgcolor=$color align=center>".$arr_quest["photoid"]."</td>";
echo "<td class=3 bgcolor=$color align=center>".$arr_quest["name"]."</td>";
echo "<td class=3 bgcolor=$color align=center><input type=radio name='delradio' value='".$arr_quest["photoid"]."'><img src=upload/".$arr_quest["photo"]."></td>";
echo "<td class=3 bgcolor=$color align=center><input type=radio name='delradio' value='".$arr_quest["photoid"]."'><img src=upload/".$arr_quest["photo_os"]."></td></tr>";
};
echo "<tr><td colspan=20><input class=1 type=submit value='Удалить'>";
echo "</td></tr>";
echo "</table>";
?>
|
Вопрос: как будет выглядить этот запрос, подсобите! | |
|
|
|
|
|
|
|
для: Front
(22.02.2007 в 12:03)
| | во-первых, не столбца, а строки - записи в базе хранятся в строках таблиц.
во-вторых, если вы хотите дать возможность удалить более, чем одну фотку за один клик (кнопка Сабмит у вас одна на всю форму), то лучше делать не радио-кнопки, а чек-боксы.
причем имена им давать таким образом: name='delradio[]' , чтобы сразу формировался массив из чек-боксов. потом в обработчике можно будет пробежаться по этому массиву, выбрать отмеченные и удалить соответствующие фотки. | |
|
|
|
|
|
|
|
для: elenaki
(22.02.2007 в 12:09)
| | Так а как сделать такой запрос, ну хотя бы покажите пример. Как удалить всю строку я знаю. Меня интересует как это сделать в одной строке, чтобы удалилась только фотография. | |
|
|
|
|
|
|
|
для: Front
(22.02.2007 в 12:17)
| | Лучше ввести в таблицу photo уникальный номер и удалять по нему при помощи запроса
DELTE FROM photo WHERE id = уникальный_номер_фотографии
|
| |
|
|
|
|
|
|
|
для: cheops
(22.02.2007 в 12:21)
| | Получается что в таблицу мне необходимо добавить уникальный индекс для фотографий, и в этом случае он должен совпадать с первичным ключом? | |
|
|
|
|
|
|
|
для: Front
(22.02.2007 в 12:31)
| | Хм... погодите так он же у вас имеется (не заметил с первого разу :), тогда можно использовать такой запрос для удаления фотографии
DELETE FROM photo WHERE photoid = 44
|
| |
|
|
|
|
|
|
|
для: cheops
(22.02.2007 в 13:32)
| | Но в этом случае удалится вся строка, а мне нужно чтобы удалялась только фотография из строки с определенным photoid. Наверно тут нужно использовать UPDATE? А мне чето никак не сообразить как написать запрос чтобы photoid, name, photo оставались неизменными а photo_os очистилась. | |
|
|
|
|
|
|
|
для: Front
(22.02.2007 в 13:40)
| | Здравствуйте
возможно я ошибаюсь, но мне кажется можно запросить так:
UРDАТЕ рhоtо SЕТ рhоtо_оs = 'NULL' WHЕRЕ рhоtо_id = 44; | |
|
|
|
|
|
|
|
для: mehelson
(22.02.2007 в 16:18)
| | Если используется значение NULL двоеточия не нужно указывать, кроме того полю рhоtо_оs не разрешается имееть значение NULL (см. первый пост темы), поэтому лучше присвоить пустую строку.
UРDАТЕ рhоtо SЕТ рhоtо_оs = '' WHЕRЕ рhоtо_id = 44;
|
| |
|
|
|
|
|
|
|
для: Front
(22.02.2007 в 13:40)
| | Здравствуйте
возможно я ошибаюсь, но мне кажется можно запросить так:
UРDАТЕ рhоtо SЕТ рhоtо_оs = 'NULL' WHЕRЕ рhоtо_id = 44; | |
|
|
|
|
|
|
|
для: mehelson
(22.02.2007 в 16:19)
| | Да точно! Прошу прощения! Невнимательность...
И интересно, с телефона порой дублируется пост...дежавю | |
|
|
|