2016-07-17 26 views
0

基本的に私のPHPコードは、データベースからブックレコードを追加または削除することになっています。MySQL削除レコード

データベースにレコードを追加しますが、ではなくを削除します。ここに私のコードは次のとおりです。

<?php 

require_once "login.php"; 
// connecting to the MySQL 
$db_server = new mysqli($db_hostname,$db_username,$db_password); 

if(!$db_server){ 
    die("Unable to connect MySQL:" . mysql_error()); 
} 
// selecting needed database 
mysqli_select_db($db_server,$db_database) or die("Unable to select database:" + mysqli_error()); 

// Deleting the Record 
    if (isset($_POST['delete']) && isset($_POST['author'])) 
    { 
    $author = $_POST['author']; 
    $query = "DELETE FROM classics WHERE year='$author'"; 
    if (!$db_server->query($query)) 
     echo "DELETE failed: $query<br>" . 
     mysql_error() . "<br><br>"; 
    } 

// Adding record to MySQL 
    if (isset($_POST['author']) && isset($_POST['title']) && isset($_POST['category']) && isset($_POST['year'])) 
    { 
    $author = $_POST['author']; 
    $title = $_POST['title']; 
    $category = $_POST['category']; 
    $year  = $_POST['year']; 

    $query = "INSERT INTO classics VALUES" . 
     "('$author', '$title', '$category', '$year')"; 

    if (!$db_server->query($query)) 
     echo "INSERT failed: $query<br>" . 
     mysql_error() . "<br><br>"; 
    } 

    echo <<<_END 
    <form action="practise.php" method="post"><pre> 
    Author <input type="text" name="author"> 
    Title <input type="text" name="title"> 
    Category <input type="text" name="category"> 
     Year <input type="text" name="year"> 
      <input type="submit" value="ADD RECORD"> 
    </pre></form> 
_END; 
    // Outputing or Fetching the Added Record 
    $query = "SELECT * FROM classics"; 
    $result = $db_server->query($query); 

    if (!$result) die ("Database access failed: " . mysqli_error()); 
    $rows = mysqli_num_rows($result); 

    for ($j = 0 ; $j < $rows ; ++$j) 
    { 
    $row = mysqli_fetch_row($result); 
    echo <<<_END 
    <pre> 
    Author $row[0] 
    Title $row[1] 
    Category $row[2] 
     Year $row[3] 
    </pre> 
    <form action="practise.php" method="post"> 
    <input type="hidden" name="delete" value="yes"> 
    <input type="hidden" name="year" value="$row[0]"> 
    <input type="submit" value="DELETE RECORD"></form> 
_END; 
    } 


    mysqli_close($db_server); 

?> 

任意の考え?

+3

'年= classicsからDELETEを著者のフィールドを見ることができないこの

// you have no author field in delete form use year instead if (isset($_POST['delete']) && isset($_POST['year'])) { $year = $_POST['year']; $query = "DELETE FROM classics WHERE year='$year'"; if (!$db_server->query($query)) echo "DELETE failed: $query<br>" . mysqli_error(($db_server) . "<br><br>"; } 

を使用する必要があります

if statements 

の内側になることはありませんtrueを取得することはありません'$ author''?本当に?年のように見えますが、作者は異なるデータ型になります – RamRaider

+0

準備文も使用しません。 SQLインジェクション攻撃の脆弱性 – naomik

+0

いいえ、それはただの練習プログラムです。考えてみると、私は$ yearと$ authorをクエリに使ってみました。しかし、それは主要な問題ではありません。私はif文の中でprblemを使うべきですが、適切な解決策を見つけることはできません。 –

答えて

1

こんにちは、if statementerrorがあります。あなたのconditionので、あなたが、私はここに

<form action="practise.php" method="post"> 
    <input type="hidden" name="delete" value="yes"> 
    <input type="hidden" name="year" value="$row[0]"> 
    <input type="submit" value="DELETE RECORD"></form> 
+0

ありがとう、私はちょうどインデックスと混合変数を必要としました。ほんとうにありがとう。 –

関連する問題