|
 585.1 Кб |
|
| Вот код index.php:
Скрин, как выглядит таблица прилепил. Проблема в том, что не могу понять как сделать кнопку удаления определенной новости. Вот в этой переменной $ss создан запрос, где по id удаляется определенная новость. Но что-то не работает.. А если вставить эту переменную в массив While, то все удаляется автоматом и сразу при загрузке страницы.
row["0"] - это id новости
<?php
session_start();
// Подключаем БД
include 'mysql.php';
// Верхнячасть html
echo'
<html>
<head>
<title>Загрузка файлов на сервер</title>
</head>
<body>
';
// Статус загрузки
echo($_SESSION['status']);
unset($_SESSION['status']);
// Вывод для админа
if(isset($_GET['admin']))
{
echo 'ADMIN<br />';
$sql_main = mysql_query("SELECT * FROM vk1");
echo '<table style="border: 1px solid #515151;margin: 5px;">';
echo '<tr><td>ID</td><td>Управление</td><td>ТЕКСТ</td><td>ИЗОБРАЖЕНИЕ</td><td>ДАТА</td></tr>';
// ВОТ ЗАПРОС ДЛЯ УДАЛЕНИЯ
// ТУТ НАЧИНАЕТСЯ ПРОБЛЕМА!!!
$ss = mysql_query("DELETE FROM vk1 WHERE id='".$row["0"]."'");
while ($row = mysql_fetch_array($sql_main, MYSQL_NUM))
{
echo '
<tr>
<td style="border: 1px solid #222222;">'.$row["0"].'</td>
<td style="border: 1px solid #555555">
<form action="" method="get">
<button type="submit" name="edit" value="">Изменить</button>
<button type="submit" name="delete" value="'.$ss.'">Удалить</button>
</form>
</td>
<td style="border: 1px solid #515151;width: 100%;">'.$row["1"].'</td>
<td style="border: 1px solid #515151;width: 100%;"><a href="files/'.$row["2"].'"><img src="files/'.$row["2"].'" style="width: 400px;height: 200px;" ></a></td>
<td style="border: 1px solid #515151;width: 100%;">'.$row["3"].'</td>
</tr>
';
}
echo '</table>';
}
// Вывод для юзера
if(!isset($_GET['admin']))
{
echo'
<form action="download.php" method="post" enctype="multipart/form-data">
Ваша новость:<br />
<textarea type="text" name="text" style="width: 500px;height: 200px;" onchange="if (this.value.length > 2) {submit.disabled = false;} else {submit.disabled = true;}"
onmousemove="if (this.value.length > 2) {submit.disabled = false;} else {submit.disabled = true;}"></textarea><br />
Ваша фотография:<br />
<input type="file" name="file"/><br />
<input type="submit" name="submit" value="Отправить" disabled="disabled"/>
</form>
';
}
// Нижняя часть html
echo'
</body>
</html>
';
?>
|
| |
|
|
|
|
|
|
|
для: Belkin
(03.11.2011 в 02:52)
| | попробуйте так
<?php
if ((isset($_GET["edit"])) && ($_GET["edit"] == "form1"))
{
$ss = mysql_query("DELETE FROM vk1 WHERE id='".$row["0"]."'");
//и т.д.
}
if ((isset($_GET["edit"])) && ($_GET["edit"] == "form2"))
{
//запрос на изменение
//и т.д.
}
.....................
код
..........
<form action="" method="get" name="form2">
<button type="submit" name="edit" value="">Изменить</button>
<input type="hidden" name="edit" value="form2">
</form>
<form action="" method="get" name="form1">
<button type="submit" name="delete" value="'.$ss.'">Удалить</button>
<input type="hidden" name="edit" value="form1">
</form>
?>
|
Хотя этот варянт лучше использовать при POST запросе, при GET можно намного проще. | |
|
|
|
|
|
|
|
для: Belkin
(03.11.2011 в 02:52)
| | У вас ничего не получается потому что вы нигде не обрабатываете нажатие кнопки удаления, а мускул запрос на удаление вставляете при выводе...
перед
вставьте например такой код
if (!empty($_POST['delete'])) {
$ss = mysql_query("DELETE FROM vk1 WHERE id='".(int)$_POST['delete']."';");
if ($ss) exit(@header("Location: ".$_SERVER['REQUEST_URI']));
else exit('<center>Permission denied</center>');
}
|
Вот это удалите из кода
$ss = mysql_query("DELETE FROM vk1 WHERE id='".$row["0"]."'");
|
а кнопку сделайте такой
<button type="submit" name="delete" value="'.$row[0].'">Удалить</button>
|
да и не надо в $_GET держать идентификатор админ не админ, лучше держите его в $_SESSION | |
|
|
|
|
|
|
|
для: KPETuH
(03.11.2011 в 09:52)
| | Спасибо большое, получилось. На счет $_GET понял, буду держать в сессии. А еще 2 вопроса - через $_GET удаления сделать нельзя, нужно и лучше через $_POST? и возможно это элементарно, но что означает вот этот кусочек - "......id='".(int)$_POST['delete'].....", я догадываюсь, что это указывает на тип данных в sql запросе, то есть числовой - INT, верно? | |
|
|
|
|
|
|
|
для: Belkin
(03.11.2011 в 17:01)
| | Почему же можно и через $_GET, главное не передавать через $_GET важные данные ), У меня $_POST потому что я не обратил внимание что у вас в форме метод $_GET :). (int)$value либо intval($value) это приведение к целому числу чтобы исключить sql инъекцию, но это относиться к PHP инструкциям, а не SQL. | |
|
|
|
|
|
|
|
для: KPETuH
(03.11.2011 в 19:16)
| | Понял, буду знать. Спасибо ) | |
|
|
|