2016-12-04 5 views
0
zu löschen

Ich habe eine Liste von Elementen aus meiner DB anzeigt und wenn ich versuche, eine Funktion zu verwenden, löschen, erhalte ich die Fehlermeldung:Undefined index beim Versuch

Notice: Undefined index: id in C:\wamp\www\delete.php on line 3 

Meinen Code;
delete.php

<?php 
include('db.php'); 
if($_POST['id']) 
{ 
$id=mysql_real_escape_string($_POST['id']); 
$delete = "DELETE FROM `cart` WHERE id='$id'"; 
mysql_query($delete); 
}   
?> 

Index des Listenteils;

<div class="container"> 

    <?php 
    mysql_connect("localhost", "root", "") or die("Connection Failed"); 
    mysql_select_db("cart")or die("Connection Failed2"); 
    $query = "SELECT * FROM products" or die("Connection Failed2"); 
    $result = mysql_query($query) or die("error"); 
    while($row = mysql_fetch_array($result)) 
    { 
    $id1=$row['id']; 
    $name=$row['product_name']; 
    ?> 
    <div class="show"> 
    <span class="name"><?php echo $name; ?></span> 
    <span class="action"><a href="delete.php" id="<?php echo $id1; ?>" class="delete" title="Delete">Delete</a></span> 
    </div> 
    <?php 
    } 
    ?> 
    </div> 
+0

Verwendung $ _GET [ 'id']; In delete.php –

+0

sollten Sie wirklich in Betracht ziehen, mysqli_ * 'anstelle von' mysql_ * 'zu verwenden, da mysql-Funktionen veraltet sind und für Angriffe offen sind. –

Antwort

0

Ändern Sie diese Zeile

<a href="delete.php?id=<?php echo $id1; ?>" class="delete" title="Delete">Delete</a> 

statt

<a href="delete.php" id="<?php echo $id1; ?>" class="delete" title="Delete">Delete</a> 

Und

if($_GET['id']) 

statt

if($_POST['id']) 

Voll-Code

<?php 
include('db.php'); 
if($_GET['id']) 
{ 
$id=mysql_real_escape_string($_GET['id']); 
$delete = "DELETE FROM `cart` WHERE id='$id'"; 
mysql_query($delete); 
}   
?> 

Und

<div class="container"> 

    <?php 
    mysql_connect("localhost", "root", "") or die("Connection Failed"); 
    mysql_select_db("cart")or die("Connection Failed2"); 
    $query = "SELECT * FROM products" or die("Connection Failed2"); 
    $result = mysql_query($query) or die("error"); 
    while($row = mysql_fetch_array($result)) 
    { 
    $id1=$row['id']; 
    $name=$row['product_name']; 
    ?> 
    <div class="show"> 
    <span class="name"><?php echo $name; ?></span> 
    <span class="action"><a href="delete.php?id=<?php echo $id1; ?>" class="delete" title="Delete">Delete</a></span> 
    </div> 
    <?php 
    } 
    ?> 
    </div> 
+0

Und überprüfen Sie für $ _GET anstelle von $ _POST –

+0

Geändert, und geändert GET in der delete.php, aber immer die gleichen Fehler –

+0

@ VadimasDružinin $ id = mysql_real_escape_string ($ _ POST ['id']); hast du auch diese Linie geändert? –