2014-03-06 17 views
0

我想用MySQL和PHP從我的數據庫中刪除一個錶行。我在互聯網上搜索,我無法弄清楚我做錯了什麼。我感覺我很接近。如何刪除MySQL和PHP中的錶行?

如果我檢查刪除鏈接,會顯示一個鏈接,顯示要刪除的行的ID號。但是,如果我點擊它,它不起作用。

這是我admin.php的代碼

<?php 
    if(!isset($_COOKIE['E2ingelogd'])) { 
     header("location:../../index.php"); 
    } 

    $username = "root"; 
    $password = ""; 
    $hostname = "localhost"; 

    $dbhandle = mysql_connect($hostname, $username, $password) or die("Kan niet inloggen"); 

    $selected = mysql_select_db("login", $dbhandle); 





     if(isset($_POST['team'])){ 
      $team = $_POST['team']; 
      $ID = $_POST['id'];   

      $query = mysql_query("SELECT * FROM e2teams WHERE Team='$team' and ID='$ID'"); 
      if(mysql_num_rows($query) > 0) { //check if there is already an entry for that username 
       echo "$team bestaat al!"; 
      } 
      else{ 
       mysql_query("INSERT INTO e2teams (Team) VALUES ('$team')"); 
       header("location:e2admin.php"); 
      } 
    } 

    mysql_close(); 
?> 

<html><head> 
<link href='http://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' type='text/css'> 
<link href="../css/layout.css" rel="stylesheet" type="text/css"></head> 
    <body> 
    <div class="wrapper"> 
      <div class="header"> 
       <div class="logo"><img height="140" src="../images/boyslogo.png"> </div> 
       <div class="titelpagina">Vroomshoopse Boys E2 admin panel</div> 
       <div class="uitloggen"><a href="../../logout.php">Uitloggen</a></div> 
      </div> 
     <div class="content"> 
       <div class="teamstoevoegenvak"> 
        <div class="titelbalk"> 
         <h1>Voeg teams toe</h1> 

          <form style="border:0px; margin:0px; padding:0px"; action="e2admin.php" method="POST"> 
           <input width="400" maxlength="400" type="text" name="team" placeholder="Team naam" /><br> 
           <input type="submit" value="Toevoegen" /> 
          </form></div> 
       </div> 
        <div clas="toegevoegdeteamsvak"> 
        <div class="titelbalktoege"> 
         <h1>Toegevoegde teams</h1> 
        </div> 
        <div class="deteams"> 
        <?php 
         $table = "e2teams"; 
         $sql = "SELECT * FROM e2teams"; 
         $result = mysql_query($sql, $dbhandle); 
         if(mysql_num_rows($result) > 0){ 
          $team = array(); 
          while($row = mysql_fetch_array($result)) { 

           echo "<table><tr><td class='styled-td'>"; 
           echo $row['Team']. '</td><td></td><td><a href="edit.php?edit='.$row['ID'].'">Bewerk</a></td><td><a href="delete.php?del='.$row['ID'].'">Delete<br>'; 
           echo "</td></tr></table>"; 
           $team = $row['Team']; 
          } 
         } 
         mysql_data_seek($result, 0); 
        ?> 
        </div> 
        </div> 

     </div> 
     <div id="volgendewedstrijd">  <form action="" method="post"> 
<select name="dropdown"> 
<?php 
mysql_data_seek($result, 0); 

if(mysql_num_rows($result) > 0){ 
    while($row = mysql_fetch_array($result)) { 
     echo '<option value="">' . $row['Team'] . '</option>'; 
    } 
} 
?> 
</select> 
</form></div> 
     </div> 

    </body> 
</html> 

的一段代碼,其中刪除是,是這樣的:

if(mysql_num_rows($result) > 0){ 
           $team = array(); 
           while($row = mysql_fetch_array($result)) { 

            echo "<table><tr><td class='styled-td'>"; 
            echo $row['Team']. '</td><td></td><td><a href="edit.php?edit='.$row['ID'].'">Bewerk</a></td><td><a href="delete.php?del='.$row['ID'].'">Delete<br>'; 
            echo "</td></tr></table>"; 
            $team = $row['Team']; 
           } 
          } 
          mysql_data_seek($result, 0); 
         ?> 

這是我delete.php:

<?php 
    if(!isset($_COOKIE['E2ingelogd'])) { 
     header("location:../../index.php"); 
    } 

    $username = "root"; 
    $password = ""; 
    $hostname = "localhost"; 

    $dbhandle = mysql_connect($hostname, $username, $password) or die("Could not connect to database"); 

    $selected = mysql_select_db("login", $dbhandle); 

    mysql_query("DELETE FROM e2teams WHERE ID = $_GET[id]"); 
    echo "Team is deleted"; 
    header('location: e2admin.php'); 
?> 

我在做什麼錯了?

回答

1

此:

mysql_query("DELETE FROM e2teams WHERE ID = $_GET[id]"); 

應該是:

mysql_query("DELETE FROM e2teams WHERE ID = ".$_GET['del'].""); 

因爲:

<a href="del.php?del='.$row['ID'].'"> //the get var name is: del 
+0

它仍然無法正常工作。這可能是我的鏈接不正確? :_ Delete _ – AlexanderFT

+0

我的錯誤...回答,更新 – Hackerman

+0

謝謝你的工作!謝謝 – AlexanderFT

1

您可以訪問引號之間的數組中的變量:

更改以下行

mysql_query("DELETE FROM e2teams WHERE ID = $_GET[id]"); 

mysql_query("DELETE FROM e2teams WHERE ID = " . $_GET['id']); 

這是一個安全隱患,你是可以接受的SQL注入。請谷歌:「PHP SQL注入」。

+0

它仍然沒有工作。這可能是我的鏈接不正確? :_ Delete _ – AlexanderFT

+0

匹配鏈接中的參數,因此$ _GET ['del']。 – Pakspul

2

您在鏈接

<a href="delete.php?del='.$row['ID'].'">Delete<br> 
使用德爾作爲PARAM

這需要停課時

<a href="delete.php?del='.$row['ID'].'">Delete</a><br> 

而且在刪除腳本,你需要把它作爲

$id = (int)$_GET["del"]; 

,並在查詢中使用的

mysql_query("DELETE FROM e2teams WHERE ID = $id");