Löschen + Neu Laden

Malaxo

Erfahrenes Mitglied
Hallo zusammen

MySQL v. 5
PHP v. 5

Hab mir 2 Funktionen geschrieben die Daten aus der Datenbank auslesen = 1. Funktion
Und Daten aus der Datenbank löschen = 2. Funktion

Jetzt hab ich das Problem, es löst mir zwar die Daten jedoch werden die noch angezeigt bis man es neu aufruft. bzw. Refresh.

Irgend was mit der reihenfolge stimmt nicht doch ich brings nicht fertig könnt ihr mir helfen?

// Auflisten
PHP:
function auflisten(){
	$read="SELECT * FROM kategorie";
	$query=mysql_query($read);
	while(list($id_thema, $beschreibung, $quelle, $link, $verfuegbarkeit) = mysql_fetch_row($query)):
	?>
	<tr>
	<td width="50"><?php echo $id_thema;?></td>
	<td width="200"><?php echo $beschreibung;?></td>
	<td width="200"><?php echo $quelle;?></td>
	<td width="200"><?php echo $link;?></td>
	<td width="200"><?php echo $verfuegbarkeit;?></td>
	<td><input name="<?php echo $id_thema;?>" type="submit" value="L&ouml;schen" /></td>
	<td><input name="<?php echo $id_thema;?>" type="submit" value="Editieren" /></td>
	</tr>
	<?php
	endwhile;
}

//Löschen
PHP:
function del(){
	$lesen="SELECT id_thema FROM kategorie";
	$query_l=mysql_query($lesen);
	while(list($id_thema) = mysql_fetch_row($query_l)){
	if(isset($_POST[$id_thema])){
		mysql_query("DELETE FROM kategorie	
			WHERE id_thema = $id_thema"
			);
			echo "Eintrag wurde gel&ouml;scht";
		}
	}
}

Weiter unten nach in einer Tabelle am schluss.

PHP:
<?php 						
						auflisten();
						del();
						//auflisten();
						?>

Evt. muss auch die Funktion angepasst werden oder so. Weiss nicht es wird gelöst wunder bar jedoch müsste es danach die neuen Datenbank einträge auflisten OHNE das eben gelöste "element"
 
Also ich steig persönlich noch nicht ganz durch dein Problem.

Formular mit <form> etc. hast du aber schon erstellt oder?! weil das sieht man hier leider nicht.

Wenn ja müsstest du dort auch noch eine Abfrage schreiben die wiefolgt aussehen müsste:

PHP:
<form.......>
if(isset($_POST[id_thema]))
{
del()
}
else
{
auflisten()
}
</form>

so ungefähr ca. ^^
 
kalppt nicht...

Zuerst meine Funktionen

PHP:
// Auflisten
<?php
function auflisten(){
	$query=mysql_query("SELECT * FROM kategorie");
	while(list($id_thema, $beschreibung, $quelle, $link, $verfuegbarkeit) = mysql_fetch_row($query)):
	?>
	<tr>
	<td width="50"><?php echo $id_thema;?></td>
	<td width="200"><?php echo $beschreibung;?></td>
	<td width="200"><?php echo $quelle;?></td>
	<td width="200"><?php echo $link;?></td>
	<td width="200"><?php echo $verfuegbarkeit;?></td>
	<td><input name="<?php echo $id_thema;?>" type="submit" value="L&ouml;schen" /></td>
	<td><input name="<?php echo $id_thema;?>" type="submit" value="Editieren" /></td>
	</tr>
	<?php
	endwhile;
}

// Löschen
function del(){
	$query=mysql_query("SELECT id_thema FROM kategorie");
	while(list($id_thema) = mysql_fetch_row($query)){
	if(isset($_POST[$id_thema])){
		mysql_query("DELETE FROM kategorie	
			WHERE id_thema = $id_thema"
			);
			echo "Eintrag wurde gel&ouml;scht";
		}
	}
}

Mein Formular danach die Tabelle
HTML:
<form name="addthema" method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
<table width="502" border="0" align="center">
<tr>
	<td>ID</td>
	<td>Beschreibung</td>
	<td>Quelle</td>
	<td>Link</td>
	<td>Verf&uuml;gbarkeit</td>
	<td colspan="2" align="center">Aktion</td>
</tr>

Jetzt der Aufruf um die Tabelle zu füllen (so wie es du vorgeschlagen hast):
PHP:
<?php 		
if(isset($_POST[id_thema])){
	del();
	}
else{
        auflisten();
	}
?>

Am Schluss wird Tabelle & Formular geschlossen.

btw: Ich hab das selbe in der Funktion "del" versucht und danach nur noch die Del funktion aufrufen. Klappt nicht.

Bei deiner Version denke ich wird der Buttonname nicht übertragen da er in der Funktion in einer while schlaufe aufgeführt wird. Oder nicht? (nur so ein gedanke)
 
Mir fällt grad auf das das Löschen so wie du es programmiert hast eigentlich auch nicht gehen dürfte... abgeshene von meinem Fehler gerade in der IF - Anweisung ^^ (es müsste $id_thema drin stehen nich id_thema aba selbst dann würds ned gehen)
Wenn ich das richtig verstehe hast du da z.B. 5 Zeilen mit den jeweiligen Infos und dann neben jeder Zeile ein Button Editieren und ein Button löschen ?!
Wenn du dann Datensatz Nr.3 löschen möchtest dürfte er es nicht machen da die eindeutige Zuordnung fehlt. Oder klappt das etwa?!
 
Zuletzt bearbeitet:
nein klappt nicht:)

Es ging ganz am anfang mit meinem Code jedoch jetzt geht nichts mehr mit löschen.

Werde es evt. mal ganz umschreiben statt Buttons Links nehmen. Danach sieht das besser aus.

Irgend wie komm ich jetzt gar nicht mehr draus:D hehe
 
'Jopp oder musst halt dir ausm netz Icons bzw. Buttons runterladen und aus denen einen "Link" machen das die per GET dann den Datensatz eindeutig identifizieren aber findest hier genug beispiele wie es geht.

Hier kleines Beispiel:

HTML:
<a href="test.php?event=113&add=2"><img src="12-em-check.png" border="0" alt="Eintragen"></a>
 
<a href="test.php?event=99&add=1"><img src="12-em-cross.png" border="0" alt="Entfernen"></a>

event erhält die ID des Eventsund add enthält die Zahl 1 o. 2 so ne art Schalter damit unterscheide ich ob gelöscht o. hinzugefügt werden soll
 
Thx

Das war das einfache :p

So hab ichs gelöst

HTML:
<a href="addthema.php?name=del&id=<?php echo $id_thema;?>" name="del" id=".<?php echo $id_thema;?>.">L&ouml;schen</td>

Jetzt muss ich noch die Abfrage machen.

Weiss jedoch nicht wie. Kann mir jemand ein stichwort geben damit ich im Web was finde? finde leider nicht das richtige.

Pls?
 
Zurück