DB: Löschen?

Tab

unlimited
ID: 374854
L
26 Juni 2007
900
71
Hallo liebe klammuser,

ich arbeite gerade an einem kleinen CMS-System, ich muss dazu sagen, dass ich gerade erst am lernen bin. Es soll nichts großes sein, nur mit newsschreiben...



So soll es aussehen, wenn man News ändern, löschen oder hinzufügen will.
Ich kann alles, bis auf löschen. Da habe ich das Problem, dass ich nicht weiß wie ich es machen soll. Also wenn man auf löschen klikct, soll dass dann auf dieser Seite direkt gelöscht werden, vllt. soll dann unter den Tabellen stehen erfolgrreich gelöscht oder so.

Habe von hier auch ein Code, wie man löscht, doch wie muss ich diesen jetzt anwenden`? https://schattenbaum.net/php/delete.php

Ich bin über jede Antwort dankbar.

LG
 
Du übergibst einfach ne ID über den Löschlink. Über die ID löschte das dann mit folgender Query:
PHP:
DELETE FROM `tabelle` WHERE `id`=132

Ganz einfach ;)
 
Ne, muss man immer id anlegen?

Aber welche Einstellung muss dann die Spalte haben,?

EDIT: Hmm, mit edit, hmm?
 
Woher weißt du beim Editieren, welcher Beitrag editiert werden soll?
Übergibst du den Titel per URL ? Oder eine ID ? Oder was?

ID ist nicht schlecht bei so etwas, ich nehme da meist INT(10) und als PRIMARY KEY und mit AUTO_INCREMENT zum automatischen erhöhen. ;)
 
Beim href des Links die ID übergeben, und im folge Script mit $_GET auslesen und dann halt in die Query einbauen ;)
Wenn du dir immer noch nicht mehr drunter vorstellen kannst, schreib ich gleich mal was kleines zusammen.
 
PHP:
//Datei 1:
Titel ... etc ... Bearbeiten <a href="delete.php?id=123">Löschen</a>

//Datei 2:
mysql_query('DELETE FROM `tabelle` WHERE `id`='.(int)$_GET['id']);
if(mysql_affected_rows() == 1)
    echo 'Datensatz gelöscht';
else
    echo 'Datensatz wurde nicht gefunden und konnte deswegen nicht gelöscht werden.';

So verständlich? ;)
 
Ok also nenen ich die Datei delete.php und wenn es dann gelöscht wurde, wie kommt man dann wiederzurück?

Ich danke dir sehr, vielen vielen dank.
 
Ok also nenen ich die Datei delete.php und wenn es dann gelöscht wurde, wie kommt man dann wiederzurück?
Du musst das nicht delete.php nennen, geht auch jeder andere Dateiname ;)
Du kannst dann z.B. nen Zurück Link bauen oder in der selben Datei arbeiten, und dann übertragste z.B. action=delete über die URL und sagst dem Script so du möchtest das löschen und danach ließt du dann erst die Einträge aus. Dann brauchste keinen Zurücklink ;)
 
Das 123 hintendran mit was muss ich das austauschen?

Es kommen diese fehler:

PHP:
Warning:  mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\delete.php on line 11

Warning:  mysql_query() [function.mysql-query]: A link to the server could not be established in C:\xampp\htdocs\delete.php on line 11

Warning:  mysql_affected_rows() [function.mysql-affected-rows]: A link to the server could not be established in C:\xampp\htdocs\delete.php on line 12
Datensatz wurde nicht gefunden und konnte deswegen nicht gelöscht werden.
 
Ok, geht, aber nur wenn ich den link zum beispiel 1 als id eintrage, aber dann kann ich auch nur das mit id 1 löschen. Wie kann ich denn das machen, dass wenn ich id 3 lsöchen will, dass die id dann hinten drangehängt wird?
 
Du liest die ID mit aus der Tabelle aus, wo du auch die News ausliest, und gibts die so, wie den Titel aus, nur halt an der Stelle, wo die ID hin soll :D
 
Ok ich lese sie aus der Tabelle aus, aber wie bekomme ich dann die id hinter der Url? Ich kann mir das noch nicht richitg vorstellen.
 
Indem du die Variable, die du ausliest im echo genauso wie den Titel per $id oder $row['id'] oder wie auch immer du das machst an den <a href="delete.php?action?id=$id"> (achtung wahrscheinlich musste es escapen) anhängst.
Mir ist irgendwie echt schleierhaft, was du da zusammengeschustert hast :D
 
Danke für deine Antwort. Habe hier mal den Code.


Index.php
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<title>admin</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<?php
 include ("inc/inc.php")
?>
<body>
<div id="center">
<?php
 $res = mysql_query ("select * from admin");
 $num = mysql_num_rows ($res);
  
   echo "<table border='0' cellspacing='10' cellpadding='20'>";
   echo "<tr><td width=200><b>Betreff</b></td>";
   echo "<td width=150><b>Name</b></td>";
   echo "<td width=50><b>Hinzufügen</b></td>";
   echo "<td width=50><b>Ändern</b></td>";         
   echo "<td width='50'><b>Löschen</b></td></tr>";
  
  while ($dsatz = mysql_fetch_assoc ($res))
  {
   echo "<tr>";
   echo "<td>" .$dsatz["betreff"] . "</td>"."";
   echo "<td>" .$dsatz["name"] . "</td>";
   echo "<td align='center' width='50'><a href='#'><img src='images/add.png' alt='delete'/></a></td>";
   echo "<td align='center' width='50'><a href='#'><img src='images/edit.png' alt='delete'/></a></td>";
   echo "<td align='center' width='50'><a href='delete.php?='><img src='images/delete.png' alt='delete'/></a></td>";
   echo "</tr>";
  }    
     echo   "</table>"; 
?>...


delete.php
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>
<?php
 include ("inc/inc.php")
?>
<body>

<?php
mysql_query('DELETE FROM `admin` WHERE `id`='.(int)$_GET['id']);
if(mysql_affected_rows() == 1)
    echo 'Datensatz gelöscht';
else
    echo 'Datensatz wurde nicht gefunden und konnte deswegen nicht gelöscht werden.'; 
?>

</body>
</html>

Könnt ihr mir das jetzt nochmal anhand des Codes erklären?