Daten per Klick löschen...

ok Klasse its working.
Jetzt nur noch eine Frage - wieso wird der allererste Datensatz nicht angezeigt?
Immer erst der zweite in der Tabelle...
 
Warscheinlich kommt das durch den doppelten Aufruf von [phpf]mysql_fetch_assoc[/phpf]?! Nimm das obere mal raus. Also:
PHP:
//Tabellenauswahl
$sql="Select * from ".$table."";

//Abfrage
$result=mysql_query($sql);
$row=mysql_fetch_assoc($result);

/* Wird zu */
//Tabellenauswahl
$sql="Select * from ".$table."";

//Abfrage
$result=mysql_query($sql);
 
Vergiss nicht die Anfrage zu authentifizieren, sodass nicht jeder irgendwelche Daten löschen kann.
 
Man muss sich vorher anmelden daher geht das nicht.
Zudem habe ich auch etwas eingebaut, damit die Daten sichtbar sofort verschwinden und damit die URL wieder zurückgesetzt wird...

PHP:
if(isset($_POST['user'])&&isset($_POST['pass'])&&isset($_POST['email'])&&$_POST['user']!=""&&$_POST['pass']!=""&&$_POST['email']!=""){

$sql="INSERT INTO ".$table." (ID, user, pass, email) VALUES ('','$_POST[user]','$_POST[pass]','$_POST[email]')";
mysql_query($sql);

$reload="true"; //<-Wichtig Ist davor oben im Dok. auf false gesetzt...
}

PHP:
<?php
if($reload=="true"){
echo <<<SCRIPT
<script language="javascript">
<!--
window.location.href="members.php";
// -->
</script>
SCRIPT;
}
?>

Damit wird die Seite neu geladen, das Problem das die neu eingefügten Datensätze nicht sichtbar sind, wird damit behoben. Zudem wird die URL zurückgesetzt.
Dumm nur das ich den Dateiname angeben muss und keine $_SERVER['PHP_SELF'] Variable verwenden kann - oder hat jmd ne Ahnung wie

Gruß,

Mike
 
Hab mal das Script ein klein wenig abgeändert...
Wenn du deine Anmeldung noch mit einbaust, ist es denke ich mal so wie du es haben möchtest...

PHP:
<?php
$host='';
$username='';
$password='';
$database='';
$table='';

//Verbindung zur Datenbank
mysql_connect($host, $username, $password);

//Datenbankauswahl
mysql_select_db($database);

//Daten löschen?
if(isset($_GET['id'])){
/* intval und abs sorgen dafür, dass die Zahl eine positive Ganzzahl wird */
mysql_query("DELETE FROM ".$table." WHERE  id=" . intval(abs($_GET['id'])));
header("Location:" . $_SERVER['PHP_SELF']);
}

//Tabellenauswahl
$sql="Select * from ".$table."";

//Abfrage
$result=mysql_query($sql);  


?>
<!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>Adminbereich</title>
</head>

<body>
<div align="center">
  <table width="500" border="0" cellspacing="0" cellpadding="0">
    <tr bgcolor="#CCCCCC">
      <td colspan="5"><div align="center">Members</div></td>
    </tr>
    <tr>
      <td><div align="center">ID</div></td>
      <td><div align="center">Username</div></td>
      <td><div align="center">Passwort</div></td>
      <td><div align="center">Email Adresse </div></td>
      <td><div align="center">L&ouml;schen</div></td>
    </tr>
    <?php
    while($row=mysql_fetch_assoc($result)){
    echo "<tr>
    <td>" . $row['id'] . "</td>
      <td>" . $row['user'] . "</td>
      <td>" . $row['pass'] . "</td>
      <td>" . $row['email'] . "</td>
      <td><div align=center><a href=".$_SERVER['PHP_SELF']."?id=" . $row['id'] . "><img src=trash.gif width=16 height=16 border=0 /></a></div></td>
    </tr>";
    }
    ?>
  </table>
  </div>
</body>
</html>

Hab die CSS und die Include rausgenommen da ich die net habe....
Das Script löscht, macht einen refresh und dadurch, dass der Datensatz gelöscht wird bevor er ausgelsen wird, werden nur die noch vorhandenen angezeigt...
Die Parameter sind nach dem refresh auch nicht mehr sichtbar, da es mit PHP_SELF auf sich selbst ( ohne Parameter ) refresht...

Einfach ma testen..
Ich hoffe ich konnte helfen...

MFG
Sandro
 
Oh gut Idee... ziemlich Porno...
also neu ist quasi

PHP:
header("Location:" . $_SERVER['PHP_SELF']);

Kann man diesen Refresh überall einbauen?
Das wäre super klasse...

Naja da sieht man wo der Unterschied bei AJAX etc. liegt - Stichwort: "Desktopähnliche Applikationen"...
 
An sich kann man diesen überall einbauen.
Schau dir das PHP-Manual zu der Funktion an und beachte dass vor diesem Header keine Ausgabe sein darf.
dh. du kannst nicht erst das Formular anzeigen lassen und dann den Refresh einbauen.
Schau dir einfach das Manual an dort stehen noch andere nützliche Dinge zu dieser Funktion ( Content-Types und Co ;) )

MFG
Sandro
 
Zurück