Ich baue ein Projekt mit eckigen und PHP, ich habe eine "Kunden" Tabelle, die ich alle Daten abrufen kann, aber ich habe ein Problem mit dem Löschen einer Zeile. Wenn der "Kunde" "Bestellungen" hat, kann ich die (Zeile) "Kunde" nicht löschen. Wenn der "Kunde" keine "Bestellungen" hat, kann ich ohne Probleme löschen. Dies ist der Fehler, den ich bei phpmyadmin = # 1451 bekomme - Kann eine Eltern-Zeile nicht löschen oder aktualisieren: Eine Fremdschlüssel-Einschränkung schlägt fehl. kann jemand helfen?kann eine Datenbankzeile nicht löschen, da sie einen Fremdschlüssel hat
PHP-Code zum Löschen:
<?php
header('Content-Type: text/html; charset=utf-8');
$connect=mysqli_connect("localhost", "root", "", "hamatkin");
include_once 'Customer.php';
mysqli_query($connect,"SET character_set_client = utf8");
mysqli_query($connect,"SET character_set_connection = utf8");
mysqli_query($connect,"SET character_set_results = utf8");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$data = json_decode(file_get_contents("php://input"));
$x=$data->customer_id;
$customer_id = $data->customer_id;
$del = "DELETE FROM customers WHERE customer_id=".$customer_id;
mysqli_query($connect, $del);
}
$newURL = "/hamatkin/#/customerCards";
header('Location: '.$newURL);
?>
Controller:
$scope.delete = function(deletingId, $index) {
var params = $.param({"customer_id":deletingId});
$http.post('api/customers-tab/delete-customer.php',{"customer_id":deletingId})
.success(function(data){
var arr=JSON.parse(JSON.stringify(data));
$scope.customerDetails = arr;
var arr2 = arr.split(",");
arr2.splice($index, 1);
$route.reload();
});
}
HTML-Code:
<tr ng-repeat="x in customers | filter:search_query | orderBy: order_query:reverse_query">
<td>{{ x.customer_id}}</td>
<td>{{ x.kind_Of_Customer}}</td>
<td>{{ x.full_name}}</td> <td> {{ x.id}} </td>
<td> {{ x.city}} </td>
<td><a href="/hamatkin/index.html#/customerCardDetails/{{ x.customer_id}}" class="btn btn-primary btn- active">הצג פרטי לקוח </a></td>
<td><a ng-click="delete(x.customer_id, $index)" class="btn btn-primary btn- active">מחיקה</td>
Hilfe mit was? Sie versuchen etwas zu tun, das gegen eine Einschränkung in Ihrer Datenbank verstößt. Entfernen Sie die Einschränkung oder befolgen Sie sie. Und beachten Sie, dass Sie anfällig für [sql Injektion Angriffe] sind (http://bobby-tables.com) –
@MarcB nichts anderes, was ich tun kann? – tanyaa
"nichts anderes, was Sie tun können" ist nicht, was ich von Marcs Kommentar genommen hätte. Sie haben die Wahl, nichts zu tun oder die Fremdschlüsselbindung aus dieser Tabelle zu entfernen. – castis