edit / delete in links.php - Herangehensweise?

siob

Mitglied
Hallo zusammen,
ich bin gerade dabei PHP zu lernen und habe gestern schonmal eine Linkliste mit Ausgabe erstellt. Nun möchte ich aber noch zwei href-Links hinzufügen mit den Titeln "edit" und "delete". Diese beiden Links sollen jeweils neben einem Eintrag stehen stehen.
* Edit soll den Datensatz an edit.php schicken und die einzelnen Spalten dann dort als values in ein Formular schreiben.
* Delete soll einfach den ganzen Datensatz löschen
Nun weiß ich aber absolut gar nicht wie ich an diese Aufgabe herangehen muss, bzw. wie ich es mit einem href-Tag überhaupt schaffe eine bestimmte php-Funktion ausführen zu lassen.

Hier also ersteinmal die beiden Links zu dem bisher gemachten Script:
http://bassment.baynights.de
http://bassment.baynights.de/write.php

Und hier der Code von write.php:
PHP:
<?php /* Verbindungsaufbau */
    
    /* Variable für Benutzerdaten */
    mysql_connect("xxx","xxx","xxx");
	
	
  /* Auswahl der Datenbank */
  
    /* Db-Name */	
	$db = "dbname";
	/* Db-select */
	mysql_select_db($db);
  
  function eintragen() {

	
	
  /* Kriterien für Eintrag in die Datenbank */	
    
	
	$url = $_POST["link"];
	$titel = $_POST["descr"];
	mysql_query("INSERT INTO links (url,beschreibung) VALUES ('$url','$titel')");
	echo "Der Link (<a href='$url' target='_blank'>$titel</a>) wurde erfolgreich hinzugefügt!";
	}
	
	    if (isset($_POST["link"]) && $_POST["link"] && isset($_POST["descr"]) && $_POST["descr"] != '')
	  { eintragen(); }
	  
	if (isset($_POST["link"]) && $_POST["link"] == '' && isset($_POST["descr"]) && $_POST["descr"] == '')
	  { echo "Du hast weder eine <b>URL</b> noch einen <b>Titel</b> eingegeben!<br>Bitte fülle beide Felder aus!
	         <br /><br /><a href='index.php'><< back</a>"; }
	  
	if (isset($_POST["link"]) && $_POST["link"] == '' && isset($_POST["descr"]) && $_POST["descr"] != '')
	  { echo "Es wurde keine <b>URL</b> angegeben!<br>Zum Abschicken des Formulars musst du beide Felder ausfüllen
	         <br /><br /><a href='index.php'><< back</a>"; }
	  
	if (isset($_POST["link"]) && $_POST["link"] != '' && isset($_POST["descr"]) && $_POST["descr"] == '')
	  { echo "Es wurde kein <b>Titel</b> angegeben!<br>Zum Abschicken des Formulars musst du beide Felder ausfüllen
	         <br /><br /><a href='index.php'><< back</a>"; }
 
 $abfrage = "SELECT * FROM links ORDER BY beschreibung";
 $ergebnis = mysql_query($abfrage);
  $anzahl = mysql_num_rows($ergebnis);
  
  
  
 
 
  
  /* Verbindungsende */	  
  ##mysql_close($connect);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>(( SHOW LINKS ))</title>
<style type="text/css">
<!--
body,td,th {
	font-family: Arial, Helvetica, sans-serif;
	color: #000000;
	font-size: 11px;
	padding-left: 10px;
}
.tisch {
	font-weight: bold;
}
.trtr {
	padding-left: 100px;
}
a {
	font-size: 10px;
	color: #FF0CC;
	font-weight: bold;
}
a:link {
	text-decoration: none;
	color: #FF00CC;
}
a:visited {
	text-decoration: none;
	color: #FF00CC;
}
a:hover {
	text-decoration: underline;
}
a:active {
	text-decoration: none;
}
-->
</style>
</head>

<body>
<br />
<br />
<br />
<?php echo "In der Datenbank befinden sich bereits <b>$anzahl</b> Links."?>
<br />
<br />
<br />
<table border="0">

  <tr>
    <td></td>
	<td class="tisch">TITEL</td>
	<td width="50px"></td>
	<td class="tisch">URL</td>
	<td width="50px"></td>
	<td class="tisch">VISIT</td>
  </tr>
  
  <tr>
    <td height="5px"></td>
  </tr>
  
<?php 
  while($row = mysql_fetch_object($ergebnis))
  { 
?> 
  <tr>
    <td>>></td>
	<td><?php echo $row->beschreibung;?></td>
	<td width="50px"></td>
	<td><font color="#666666"><?php echo $row->url;?></font></td>
	<td width="50px"></td>
	<td><a href='http://<?php echo $row->url;?>' target='_blank'>click</a></td>
	<td width="50px"></td>
	<td><a href="edit.php?edit <font color="#666666">|</font> delete</td>
<?php 
  }
?>
  <tr>
    <td><br /><a href="index.php">>> add new link</a></td>
  </tr>
  
</table> 
<br />
<br />

</body>
</html>

Für euren Rat wär ich echt dankbar! :)

P.S:
Tschuldigung für den chaotischen Code; den wollte ich erst am Schluss ordnen =)
 
Ich nehme mal an, dass Du jeden Eintrag in der DB mit einer eindeutigen ID versehen hast. Diese gibst Du einfach an die edit.php/delete.php weiter:
HTML:
<a href="edit.php?id=1">Edit</a>
Somit kannst den Datensatz mittels $_GET['id'] auf der Zielseite eindeutig identifizieren und bearbeiten/löschen. Schau dir dazu mal die MySQL-Dokumentation im Zusmmenhang mit der WHERE-Klausel an.
 
Und wie lad ich mit dem href-Befehl ne Funktion?
Also:
PHP:
<?php 

$url = function laden() { 
$seite = include 'inc.php'; }
  
?>
  
  



<table border="1">

  <tr>
    <td valign="top"><a href="$url">index</a></td>
	<td rowspan="2"><?php $seite?></td>
  </tr>


</table>
 
Entweder du machst eine Datei mit den Operationen write,edit,del oder alles einzeln.

Z.b. Option.php
PHP:
<?php

if (isset($_GET['write']))
{
  // code für schreiben
}
else (isset($_GET['edit']))
{
  // code für editieren
}
else (isset($_GET['del']))
{
  // code für löschen
}

?>

Die Links sehen dann so aus:
HTML:
<a href="option.php?write=1">Schreiben</a>
<a href="option.php?edit=1">Editieren</a>
<a href="option.php?del=1">Löschen</a>

Wenn du es einzeln machst sollte sich das Selbsterklärend sein.
 
Zurück