2012-05-02 11 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

スタックオーバーフローへようこそと呼ばれます!古い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インジェクションにオープンしています。もしあなたがまだいなければ、あなたは**ハッキングされるでしょう。準備されたステートメントを適切に使用することを学ぶならば、これはもはやあなたの問題ではありません。また、 'Location:'ヘッダに相対パスを使用することはできません。それはほとんどの時間は動作しますが、RFCはあなたがそれを使うことはできないと言います。最後に、 '

'タグを使用しないでください。彼らは今かなり長い間死んでいる。 CSSを使用してページのスタイルを設定します。 – Brad

答えて

0
  • $tbl_nameは、お使いの削除スクリプトに設定されていません。
  • あなたはすでにstdoutに出力を持っているとして、あなたがバッファリングされていない限り、あなたのヘッダ行は動作しません
  • かなり古いのMySQLのfuncsよりもPHP PDOを使用する必要があり、SQLインジェクションについて読んあなたの入力をフィルタリング、クエリ
  • をエスケープしてください。
  • あなたの選択入力が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

関連する問題