SQL - Datenbank auslesen und löschen

SasserVirus

Gesperrt
Hallo!

Mal wieder nen Problem; aaalso,

ich hab ne SQL - Datenbank mit einer Tabelle namens "admin". In dieser sind folgende Felder: id, user, password und email! Die Connectdaten habe ich in einer config.php!

Jetzt möchte ich gern ein Listenfeld, indem alle Admins aufgelistet werden. Diese möchte ich gern markieren können und per Löschen-Button komplett aus der SQL-Datenbank löschen!

Wäre sehr schön, wenn ich einen Ansatz bekommen würde, also den Grundaufbau! Anpassen würde ich es selbst!

Danke schonmal!
 
Hi,

so wie ich das verstanden habe, kommst du mit MySQL nicht klar? :)

Du lässt dir einfach die Tabelle "admin" ausgeben, oder vorzugsweise nur den Namen (user).
Anschliessend kannst du mit selbigen die entsprechenden Einträge in der Datenbank löschen.

Helfen könnte dir diese Website: http://www.schattenbaum.net/php/mstart.php

Es wäre unnötig sich hier einen Wolf zu tippen, da auf der Website alles wunderbar erklärt ist.

Viel Spass;-)

Gruss
Commi

Edit: Gerade eben erst gemerkt... Meinst du überhaupt MySQL, oder SQL ?
 
Zuletzt bearbeitet von einem Moderator:
Ja, aber wie kann ich denn sowas in einem Listenfeld realisieren? Also dass ich einen Datensatz markiere und per Button lösche?

Wäre über ein Script mit Beschreibung sehr erfreut, da ich es gern lernen würde!
 
Hmmm...

Du fragst als erstes die Datenbank ab und packst alle Usernamen in ein Array.
Dieses Array lässt du zählen
PHP:
$useranzahl = count($Array_der_Usernamen);
Nun musst du dieses Array mit Hilfe einer Schleife ausgeben lassen.

Etwa so:
PHP:
<?php
echo "<form>";
echo "<select name=\"test\" size=\"1\">";
for($i = 0; $i < $useranzahl; $i++){
echo "<option value=\"$i\">$Array_der_Usernamen[$i]";
}
echo "</select>";
echo "<form>";
?>

Nun kannst du die einzelnen Einträge auswählen und mit einem Button den Wert weiterschicken. Anschließend noch aus der Datenbank den entsprechenden Wert löschen und feddisch :)

Ich hoffe, ich konnte dir einen Gedankenanstoß geben.

Gruss
Commi
 
Sooo, habs folgendermaßen gemacht;

PHP:
include("config.php");


$result=mysql_query("select user from admin");

$useranzahl = count($user);

echo "<form>";
echo "<select name=\"admins\" size=\"10\">";
for($i = 0; $i < $useranzahl; $i++){
echo "<option value=\"$i\">$user[$i]";
}
echo "</select>";
echo "<form>";



?>

Mir wird aber nur der 1. Datensatz angezeigt und davon nur der 1. Buchstabe....

Und wie realisiere ich das mit dem Button? Bitte hilf mir, bin totaler Anfänger in Sachen PHP :rolleyes:

Ich hatte schon den folgenden Code gehabt;

PHP:
<html>
<head>
<title>
</title>
<link rel="stylesheet" href="format.css" type="text/css">
</head>
<body bgcolor="#E6E6FA"><center>
<font size="+1"><b>Administratoren</b></font><br>
<select name="Administratoren" size="10" style="width:350px">
<?php
include("config.php");
$SQL_statement="SELECT `user`,`email` FROM `admin` ORDER BY `id`";
$resultset=mysql_query($SQL_statement);
while($data=mysql_fetch_array($resultset)){
echo '<option>'.$data['user'] .' ('.$data['email'] .')</option>';}
mysql_close();
?>
</select>


Kann man den nicht umbauen, sodass man den ausgeählten Datensatz per Button löschen kann? Wie mache ich das?
 
Das mit dem Array und count(), sollte zum einfacheren Verstehen beitragen.

Am besten, du lässt die Spalte "user" gleich bei der Datenbankabfrage mit zählen:
http://www.tutorials.de/forum/php/188930-php-mysql-count-wie.html

Du brauchst am Ende eine Variable, in der die Anzahl der User - die sich in der Datenbank befinden - steht.
Ebenfalls benötigst du ein Array mit allen Usernamen.

Danach kannst du dies hier anwenden, um erst einmal alles schön auszugeben.
Die Anzahl der User brauchst du für die Schleife, damit sie nur so oft die Zeile echo "<option value=\"$i\">$Array_der_Usernamen[$i]"; ausgibt,
wie auch überhaupt Usernamen vorhanden sind.
$i erhöt sich bei jedem durchlauf um 1 und wird gleich für das Array mit verwendet, um alle Namen nacheinander auszugeben. Auf den Inhalt eines Arrays greift man ja mit der Zahl in Klammern zu. $Array_der_Usernamen[0],
$Array_der_Usernamen[1], usw...

PHP:
 <?php
echo "<form>";
echo "<select name=\"test\" size=\"1\">";
for($i = 0; $i < $useranzahl; $i++){
echo "<option value=\"$i\">$Array_der_Usernamen[$i]";
}
echo "</select>";
echo "<input type=\"submit\" name=\"loeschen\">";
echo "<input type=\"hidden\" name=\"hidden\">";
echo "<form>";
?>

Ich habe mal ein Tutorial geschrieben, dass sich mit der Verarbeitung eines Formulars befasst. Dort wird auch der "hidden"-Button erklärt:
http://www.tutorials.de/forum/php-tutorials/207714-formular-uberpruefung-mit-fehlerausgabe.html

Wie im Tutorial beschrieben, kannst du in der If-Anweisung (Falls das Formular abgeschickt wurde) wieder mit MySQL arbeiten und den betreffenden Wert löschen.

Da ich weiß wie es dir geht, werde ich mal eben eine mögliche Lösung tippseln.

Gruss
Commi
 
Hmmm, komme net so richtig klar, SQL mach ich seit 2 Tagen vll.!

Ich begreife es am besten, wenn ich den fertigen Code sehe. So habe ich mir alles angelernt!

Wie sage ich nun dem Button, was er löschen soll? Das Listenfeld hab ich ja schon und da stehen auch meine User drin!

Und nun? Bitte etwas einfacher erklärt... :confused:
 
Na wenn du deine Liste - inklusive Usernamen bereits hast, kann ich mir die Arbeit sparen ;-)

Du fügst nun in dein Formular als Ziel folgendes ein: action="<?php echo $_SERVER['PHP_SELF']?>">
Denke auch an das "hidden"-Feld, oberhalb des loeschen-Buttons:
<input type="hidden" name="hidden">
Über das Formular kommt noch etwas PHP.

PHP:
<?php 
// Hier oben steht die Datenbankabfrage, die du für das Formular brauchst.

  if(isset($_POST['ueberpruefung']))  
  {  
 // Hier übergibst du die abgeschickte Variable aus dem Formular
// und Löscht den betreffenden Wert aus der Datenbank.
// Wie das Löschen funktioniert, kannst du auf der Website nachlesen, die ich dir vorhin gepostet habe (schattenbaum.net)

   } 
    else 
  { 
  ?> 

<form name="blabla" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
...der Bereits funktionierende Inhalt...
<input type="hidden" name="ueberpruefung">
<input type="submit" name="loeschen" value="loeschen">
</form>

<?php } ?>

Schau mal ob du klar kommst, wenn nicht: Ein Post genügt :)

Gruss
Commi

EDIT: Poste mal bitte deinen jetzigen Code
 
So das ist jetzt mein Code, wenn ich auf löschen klicke passiert aber noch nicht... Fehlt mir noch was oder hab ich was übersehen?

PHP:
<html>
<head>
<title>
</title>
<link rel="stylesheet" href="format.css" type="text/css">
</head>
<body bgcolor="#E6E6FA"><center>
<font size="+1"><b>Administratoren</b></font><br>
<?php 
// Hier oben steht die Datenbankabfrage, die du für das Formular brauchst.

  if(isset($_POST['ueberpruefung']))  
  {  
 // Hier übergibst du die abgeschickte Variable aus dem Formular
// und Löscht den betreffenden Wert aus der Datenbank.
// Wie das Löschen funktioniert, kannst du auf der Website nachlesen, die ich dir vorhin gepostet habe (schattenbaum.net)

   } 
    else 
  { 
  ?> 

<form name="delete_admin" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
<select name="admins" size="10" style="width:350px">
<?php
include("config.php");
$SQL_statement="SELECT `user`,`email` FROM `admin` ORDER BY `id`";
$resultset=mysql_query($SQL_statement);
while($data=mysql_fetch_array($resultset)){
echo '<option>'.$data['user'] .' ('.$data['email'] .')</option>';}
mysql_close();
?>
</select>
<input type="hidden" name="ueberpruefung">
<input type="submit" name="loeschen" value="loeschen">
</form>

<?php } ?>
</body>
</html>
 
Büddeschön... Nicht getestet!

PHP:
<html>
<head>
<title>
</title>
<link rel="stylesheet" href="format.css" type="text/css">
</head>
<body bgcolor="#E6E6FA"><center>
<font size="+1"><b>Administratoren</b></font><br>
<?php 
include("config.php");
 $loeschen = "DELETE FROM `admin` WHERE `user` = '$userzumloeschen'";
 $loesch = mysql_query($loeschen);
mysql_close();

  if(isset($_POST['ueberpruefung']))  
  {  
$userzumloeschen = $_POST['admins']; 
   } 
    else 
  { 
  ?> 

<form name="delete_admin" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
<select name="admins" size="10" style="width:350px">
<?php
include("config.php");
$SQL_statement="SELECT `user` FROM `admin` ORDER BY `id`";
$resultset=mysql_query($SQL_statement);
while($data=mysql_fetch_array($resultset)){
echo "<option value=\"$data['user']\">$data['user']</option>";}
mysql_close();
?>
</select>
<input type="hidden" name="ueberpruefung">
<input type="submit" name="loeschen" value="loeschen">
</form>

<?php } ?>
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Zurück