PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP Datensatz löschen Problem


newger
05.01.2006, 14:05
Hallo,
bin Anfänger und benötige Hilfe.
Vielen Dank dafür.....
Habe ein Script aus dem Internet für meine DB angepaßt.
Soweit funktioniert alles, außer dass die Datensätze willkürlich gelöscht werden. Ich vermute es liegt an der Schleife.
Ich habe vier Daten in der Tabelle.
2 werden gelöscht, aber nicht die, die ich gewählt habe.
Und die letzten 2 Datensätze werden garnicht mehr gelöscht.-----------------------------

Hier die Tabelle(phpadmin)
*************************************
Nach Schlüssel sortieren: PRIMARY (aufsteigend)
PRIMARY (absteigend) keine
id feld
1 A
2 B
3 C
4 D
Alle auswählen / Auswahl entfernen markierte:
*************************************

Leider komme ich hier nicht weiter..
Vielen, vielen dank....

Hier das Script:
**************************************
<?
// Verbindung zur Datenbank herstellen
$db=@mysql_connect("localhost","root","");
$select=@mysql_select_db("newger",$db);

if($submit) {
// Wenn der Submit-Button geklickt wurde ...

// die Anzahl der markierten Datensaetze ermitteln
$y=count($loeschen);
echo "$y Datensätze werden gelöscht.<br><br>";

// Für jeden markierten Datensatz
// den delete-Befehl aufrufen.
for($x=0;$x<$y;$x++) {
mysql_query("delete from testdaten
where ID='$loeschen[$x]'");

echo "Gelöscht: $loeschen[$x]<br>";
}
}

// Die vorhandenen Datensätze abrufen
$result=mysql_query("select * from testdaten");

// Nur wenn Daten gefunden wurden,
// wird das Formular angezeigt.
if(mysql_num_rows($result)) {
?>
<form method="post" action="loeschen.php">
<table width="300" border="0" cellspacing="0"
cellpadding="0">
<?
// Daten anzeigen
while($row=mysql_fetch_array($result,MYSQL_ASSOC)) {
$ID=$row["ID"];
$feld=$row["feld"];
?>
<tr>
<td width="30">
<input type="checkbox" name="loeschen[]"
value="<? echo $ID ?>">
</td>
<td><? echo $feld ?></td>
</tr>
<? } ?>
</table>
<br>
<input type="submit" name="submit" value="Löschen">
</form>
<?
} else {
echo "Keine Daten gefunden.";
}
?>

und hier die Löschroutine:
*******************************************
<!-loeschen.php->
<html>
<body>

<?php
// changed by Joey 30.12.2005
include ("start.php");
mysql_query("DELETE FROM testdaten WHERE id='$x'");
mysql_close();
?>

Mystics
08.01.2006, 21:36
Ich verstehe den Zusammenhang zwischen start.php und loeschen.php nicht. Warum überhaupt zwei Dateien? Woher bekommt loeschen.php die $x Variable?