2016-06-17 5 views
-1

Ich bin ein Anfänger in PHP und SQL. Ich habe versucht, Zeilen in der SQL-Tabelle mit dem folgenden Code zu löschen, aber es funktioniert nicht. Bitte helfen Sie.Löschen von SQL-Satz mit PHP

<?php 
/* 
DELETE.PHP 
Deletes a specific entry from the 'db' table 
*/ 

// connect to the database 
include('connect-db.php'); 

// check if the 'id' variable is set in URL, and check that it is valid 

// get id value 
$id = $_GET['id']; 

// delete the entry 
$result = mysql_query("DELETE FROM db WHERE 'Report No.'= '$id'") 
or die(mysql_error()); 

// redirect back to the view page 
header("Location: view.php"); 

// if id isn't set, or isn't valid, redirect back to view page 
{ 
header("Location: view.php"); 
} 

?> 
+0

db ist Ihr Tabellenname? und Bericht Nr. ?? Was ist das, hier müssen Sie Ihren Tisch Feldnamen geben. –

+0

Umwickeln Sie die Anführungszeichen mit dem Spaltennamen, verwenden Sie stattdessen backtick – Saty

+0

echo die Abfrage zum Löschen und führen Sie die Registerkarte phpmyadmin SQL aus. Wird es ausgeführt? –

Antwort

0

Wenden Sie Backticks (`) um den Tabellenfeldnamen" Report No. "an. (Es ist nicht Standard Art und Weise eine Tabelle Feldnamen zu definieren)

Versuchen Sie, diese

$result = mysql_query("DELETE FROM db WHERE `Report No.`= '$id'"); 
+0

Danke. Arbeitet jetzt! –

-1

Ihre Anfrage Fix durch Apostroph der Namentabelle zu entfernen:

$result = mysql_query("DELETE FROM db WHERE `Report No.`= '$id'"); 

Vergewissern Sie sich, dass Sie eingeben Recht für Bericht Nr. Spaltenname. Eigentlich für die Benennung Bericht Nr. wird nicht empfohlen.

+0

Das Entfernen von einfachen Anführungszeichen verursacht einen Fehler, da Leerräume nicht akzeptiert werden. Das Ersetzen von einzelnen Anführungszeichen durch Backticks half jedoch. Danke für deinen Vorschlag. –

+0

Welche Datenbank verwenden Sie? Weil Ihr Tabellenname Platz enthält. Sie müssen also 'sign for Report No. 'hinzufügen. Ich denke, für einen einfachen Namen ohne Leerzeichen kann es funktionieren. –