2017-01-06 12 views
0

Erstens bin ich kein Entwickler so mit mir tragen :)Löschen von Daten aus MySQL-Datenbank php

Ich versuche, eine Reihe von einem kleinen Inventar-System löschen wir einrichten, aber es ist immer noch erlaubt mir nicht zu alles tun, das ist mein aktueller Code:

Assigned Seite:

<?php 
$password = 'notTheRealPassword'; 
$conn = mysql_connect('localhost', 'root', $password); 
     if(!$conn) 
     { 
       die('Error connecting database'); 
     } 
     mysql_select_db('inventory_system', $conn); 


$query= "SELECT * from assigned"; 

$result=mysql_query($query); 



echo "<table border='0' cellpadding='100' class='table-striped'>"; 
     echo "<th>Asset ID</th><th>Asset</th><th>Type</th><th>Manufacturer</th><th>Model</th><th>PC 
Name</th><th>Serial Number</th><th>Purchased</th><th>Warranty 
End</th><th>OS</th><th>OS 
Bit</th><th>CPU</th><th>Memory</th><th>HDD</th><$ 

    while($row = mysql_fetch_array($result)) 
    { 
     echo '<td>' . $row['asset_id'] . '</td>'; 
     echo '<td>' . $row['asset'] . '</td>'; 
     echo '<td>' . $row['type'] . '</td>'; 
     echo '<td>' . $row['manufacturer'] . '</td>'; 
     echo '<td>' . $row['model'] . '</td>'; 
     echo '<td>' . $row['pc_name'] . '</td>'; 
     echo '<td>' . $row['serial_no'] . '</td>'; 
     echo '<td>' . $row['purchased'] . '</td>'; 
     echo '<td>' . $row['warranty_end'] . '</td>'; 
     echo '<td>' . $row['os'] . '</td>'; 
     echo '<td>' . $row['os_bit'] . '</td>'; 
     echo '<td>' . $row['cpu'] . '</td>'; 
     echo '<td>' . $row['memory'] . '</td>'; 
     echo '<td>' . $row['hdd'] . '</td>'; 
     echo '<td>' . $row['plant'] . '</td>'; 
     echo '<td>' . $row['location'] . '</td>'; 
     echo '<td>' . $row['username'] . '</td>'; 
     echo "<td><a href=\"delete.php?id=".$row['asset_id']."\">Delete</a></td>"; 
      echo "</tr>"; 
      } 
     echo "</table>"; 

mysql_close(); 

?> 

Seite löschen:

<?php 

$password = 'notTheRealPassword';  
$conn = mysql_connect('localhost', 'root', $password); 
     if(!$conn) 
     { 
       die('Error connecting database'); 
     } 
     mysql_select_db('inventory_system', $conn); 


$id = (int)$_GET['asset_id']; 

mysqli_query($conn,"DELETE FROM assigned WHERE asset_id='".$id."'"); 
mysqli_close($conn); 
header("Location: assigned1.php"); 


?> 

Ich vermute es wird etwas Einfaches sein.

Cheers,

+3

'mysql_connect' ist Ihr Problem. Du kannst keine Fahrer mischen. Sie sollten auch parametrisierte Abfragen verwenden. – chris85

+0

@ chris85 Ich habe es fast geschlossen, aber es gibt mehr Fehler in diesem, als ich einen Stock schütteln möchte. Jeroen postete etwas darunter. –

+0

@ Fred-ii-ja, bemerkt, nachdem es noch ein paar Probleme gibt. Zurückgezogene Abstimmung. Fehlerberichte könnten auch dem OP helfen. OP sehen Sie bitte http://php.net/manual/en/function.error-reporting.php und überwachen Sie Ihre Fehlerprotokolle. – chris85

Antwort

4

ein paar Dinge gibt es hier falsch:

  • Ihre GET-Variable, die, die Sie in den Link setzen, ist id, nicht asset_id
  • Sie sollten nicht GET verwenden Dinge in Ihrer Datenbank ändern; Wenn sich Ihr Browser oder ein Plugin dazu entschließt, Links vorab zu holen, wird Ihre Datenbank gelöscht.
  • Sie können mysql apis nicht mischen, verwenden Sie entweder mysqli oder mysql (obwohl nicht die letzteren ...).
  • Die mysql_* Funktionen sind veraltet, Sie sollten PDO oder mysqli in Kombination mit vorbereiteten Anweisungen verwenden.
  • Wenn Sie viel HTML aussprechen, ist es einfacher, den PHP-Abschnitt zu schließen und dann wieder zu öffnen, wenn Sie ihn brauchen. Jetzt haben Sie PHP-Tags in den Echo-Texten. Die PHP/Strings/HTML sind nicht korrekt getrennt.
+0

Ich würde mir auch nochmal ihren Code anschauen; Stacks Highlighter zeigt, dass es Fehler in und um '<$ while ($ row = mysql_fetch_array ($ result)) ...' –

+0

@ Fred-ii- Ugh, gibt es mehr?!?! – jeroen

+0

Es sieht so aus; etwas Wanky geht da oben vor, hast du Syntax Highlighting gesehen? –