Здравствуйте! У меня такая проблема, создала страницу отправки сообщения, ну как на майле, но никак не могу написать код удаления выделенного сообщения со страницы. Пробовала через $result = mysql_query ("DELETE FROM messages WHERE id='$id'"); не получилось. Буду рада любым советам по решению этой проблеме.
Вроде радио кнопки выводятся и пишет что удалено, но результата нет, письмо как стояло, так и стоит на странице. Я пыталась закинуть файлы delete.php и drop.php в одну index.php, ну чтобы все и сразу на одной странице. Вроде вышло, но НЕ УДАЛЯЕТ. Вот, посмотрите.. PHP: <?php if (isset($id)) { $result = mysql_query ("DELETE FROM messages WHERE id='$id'"); if ($result == 'true') {echo "<p>Ваша информация успешно удалена!</p>";} else {echo "<p>Ваша информация не удалена!</p>";} } else { echo "<p>Вы запустили данный файл без параметра id, поэтому удаление невозможно.</p>"; } ?> PHP: <form action="drop_message.php" method="post"> <p> <?php $result = mysql_query ("SELECT * FROM messages"); $myrow = mysql_fetch_array ($result); do { printf ("<p><input name ='%s' type ='radio' value ='%s' > <label>%s</label><label>%s</label></p>", $myrow['id'],$myrow['name'], $myrow['text']); } while ( $myrow = mysql_fetch_array ($result)); ?> </p> <p><input name="submit" type="submit" value="Удаление" /> </p> </form>
Так. Первое что учимся делать - это отлаживать скрипты. Для этого сам процесс удаления надо представить в виде этапов. 1. получаем в скрипте данные формы 2. подставляем их в запрос 3. выполняем запрос. Вот и начинай с 1го. Ты точно получила данные с формы? Попробуй их просто вывести на экран. Код (Text): var_dump($_POST); var_dump($id)
похоже код который Вы написали, что-то вроде описания и он должен стоят в самом начале, так? Если честно, я даже понятия не имею зачем он нужен, я им никогда не пользовалась.
Это не описание, но на время тебе необходимо поставить его в начало файла. Он нужен для того чтобы увидеть что пришло тебе в скрипт. И научится им пользоваться - придется. Поэтому вставляй код. Выполняй скрипт. Смотри на результат. P.S. Возможно у тебя стоит register_globals = off в настройках поэтому переменные сами по себе не объявляются. Их необходимо инициализировать.
Знаете, попробую объяснить проще свою цель, мне нужно те файлы drop.php и delete.php засунуть в index.php, так чтобы процесс удаления заработал. Вот код index.php PHP: <?php include ("blocks/bd.php"); if (isset ($_POST ['name'])) {$author = $_POST['name']; if ($name== '') {unset ($name);}} if (isset ($_POST ['text'])) {$text = $_POST['text']; if ($text== '') {unset ($text);}} ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Страницa добавления сообщений</title> <link href="style.css" rel="stylesheet" type="text/css" > </head> <body> <!--Заполнение таблицы--> <table width= 500 cellspacing=1 border=0 align="center" bgcolor="#CCCCCC"> <tr> <td width="475" valign="top"> <form id="form1" name="form1" method="post" action="index.php"> <p> <tr valign=middle bgcolor=#FFFFFF><td align="center" class="name"><b>Имя пользователя:</b></td><td class=text><input type="text" class="text" size=60 name="name" id="name" value=""></td></tr> </p> <p> <tr><td bgcolor=#FFFFFF valign=top class="name"><b>Текст сообщения:</b> </td><td bgcolor=#FFFFFF valign=middle><textarea cols=60 rows=10 wrap="soft" name="text" id="text" class="text" tabindex="3" onClick="storeCaret(this);" onKeyup="storeCaret(this);" onChange="storeCaret(this);" onFocus="storeCaret(this);"></textarea></td></tr> </p> <p> <tr> <td bgcolor="#CCCCCC" align=center> <form name="SR_form" method="post" target="_blank" onsubmit="return SR_submit(this)"> <input class=button type="submit" value="Отправить" name="submit" id="submit" onClick="return Formchecker(this.form)"> </td> </form> <tr> <!--Список сообщений--> <tr> <form action="index.php" method="post"> <p> <?php if ( isset($name)&&isset($text) ) { /* Здесь пишем что можно заносить информацию в базу */ $result = mysql_query ("INSERT INTO messages (name,text) VALUES ('$name','$text')"); } ?> <? $result = mysql_query ("SELECT * FROM messages", $db); $myrow = mysql_fetch_array ($result); do { printf ("<table class='table'> <a href='view_message.php?id=%s'>%s</a><p>%s</p> </table><br> </br>", $myrow["id"], $myrow["name"], $myrow["text"]); } while ($myrow = mysql_fetch_array ($result)); ?> </form> </td> </tr> </table> </body> </html>
Замечательно. Раз нужно засунуть - засовывайте. В чем сложность? Готовое решение? Это не ко мне. Обращайтесь к другим участникам форума.
М-да.. Если бы все было так легко.. Но все равно, большое спасибо за помощь! Попробую обмозговать решение этой проблемы с другими участниками форума.