2012-05-02 2 views
-1

Я пытаюсь удалить новостное событие из базы данных, выбрав событие новостей из выпадающего меню. Когда пользователь выбирает заголовок новостей и нажимает кнопку отправки, элемент новостей следует удалить из соответствующей таблицы. Я не могу заставить это работать правильно, независимо от того, что я пытаюсь. Извините, я новичок в PHP. Может кто-нибудь помочь, пожалуйста? вот выпадающее меню:выпадающее меню php для удаления из базы данных

$sql="SELECT newstitle FROM $tbl_name"; 
    $result=mysql_query($sql); 
    ?> 

    <select name="select1"> 
    <?php 
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){ 
    ?> 
    <option value="<?php echo $row['newstitle'];?>"> <?php echo $row['newstitle'];?>   </option> 

    <?php 
    } 
    ?> 
    </select> 


    <td><center><input type="submit" name="delete" value="delete"></center></td> 

У меня есть также этот код для удаления из базы данных при нажатии кнопки?

$delete=$_POST['delete']; 
    $delete = mysql_real_escape_string($delete); 

    mysql_query ("DELETE FROM $tbl_name WHERE newstitle='$delete'") or die ("Error- news has not been deleted"); 
     echo "News has been deleted"; 
     header("Location: newsdeleted.php"); 
+1

Добро пожаловать в Stack Overflow! Пожалуйста, прекратите писать новый код с помощью древних 'mysql_ *' функций. Они больше не поддерживаются, и сообщество начало процесс [устаревания] (http://news.php.net/php.internals/53799). Вместо этого вы должны узнать о подготовленных операторах и использовать либо [PDO] (http://php.net/pdo), либо [MySQLi] (http://php.net/mysqli). Если вы хотите узнать, [здесь довольно хороший учебник по PDO] (http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers). –

+0

В дополнение к тому, что сказал @Truth, вы в настоящее время открыты для какой-то серьезной инъекции SQL, и вы ** будете взломаны **, если вы еще не были. Если вы научитесь правильно использовать подготовленные заявления, это больше не будет проблемой для вас. Кроме того, вы не можете использовать относительный путь в заголовке «Местоположение:». Хотя он будет работать большую часть времени, RFC говорят, что вы не можете его использовать. Наконец, не используйте теги '

'. Они уже давно мертвы. Используйте CSS для стилизации своей страницы. – Brad

ответ

0
  • $tbl_name не установлен на вашем сценарии удаления.
  • Пожалуйста, почитайте о SQL Injection, фильтровать ввод, избежать вашего запроса
  • Вы должны использовать PHP PDO вместо старых MySQL funcs
  • Вашей строка заголовок не будет работать, если вы не буферизации, как вы уже на стандартный вывод ,
  • Ваш выбор вход называется select1 не delete
0
// Your check for the "delete" submit value goes here 
// Submit name and value are both 'delete' 
if (isset($_POST['delete']) && $_POST['delete'] == 'delete') { 
    // This is the value passed from the form (use select element's name) 
    $selected_newstitle = $_POST['select1']; 
    ... 
} 
+0

Извините, я не уверен, где вы хотите вставить это, я ставлю его выше mysql_query? – user1368371

Смежные вопросы