Seite 2 von 2

Verfasst: 17.07.2006 20:44
von Bananenweizen
*smile* Kommt das gleiche wie vorher.
Ok, das lass ich jetzt mal.
Was ich eigentlich machen will ist ja die Frage (if Checkbox geklickt also nicht Null) -> delete ID in der DB.
Wie müsste hierfür der Code sein ?
Probier hier schon lange rum, aber mit dem eigentlichen if($loeschen != "") { delete usw. } funktioniert das mit dem Array nicht. Den Code für die DB müsste ich hin bekommen. Aber die If Abfrage tut nicht.
...öhm... sorry, dass ich soviel Fragen stelle ;) Bedanke mich hier mal für den tolen Support bisher !

Verfasst: 17.07.2006 21:23
von BB-BF-BM
Bananenweizen hat geschrieben:Kommt das gleiche wie vorher.
Kannst du mir vielleicht etwas mehr Code geben; in deinem ersten Post fehlt noch etwas für den Zusammenhang. Ist auch noch etwas undurchsichtig. Was willst du z. B. mit mehreren öffnenden form-Tags, aber nur einem schließenden?
Ich habe versucht den Teil, den ich sehen konnte zu bereinigen:

Code: Alles auswählen

echo '<form action="nachrichten.php" method="post" enctype="multipart/form-data">';
$i = 0;

while( $daten = mysql_fetch_array($mail) )
{
	echo '<tr>
		<td>'.$daten[2].'</td>
		<td>'.$daten[3].'</td>
		<td>'.$daten[6].' '.$daten[7].'</td>
		<td><input type="Checkbox" name="loeschen_'.$i.'" value="'.$daten[0].'"></td>
	</tr>';
	
	$i++;
}

echo '</table><br><br><input type="Submit" value="Löschen"></form>';
Wenn das nicht funktioniert, musst du mehr code geben...

Bananenweizen hat geschrieben:Ok, das lass ich jetzt mal.
Was ich eigentlich machen will ist ja die Frage (if Checkbox geklickt also nicht Null) -> delete ID in der DB.
Wie müsste hierfür der Code sein ?
Je nachdem, wie du die Checkboxen danach ausgewertet hast. Nehmen wir mal die Idee, wie ich sie versucht habe umzusetzen.

Code: Alles auswählen

$sql = '';
foreach( $loeschen as $key => $value )
{
    $sql = empty($sql) ? 'DELETE FROM tabelle WHERE id = '.$key : ' OR id = '.$key;
}
mysql_query($sql);
Guck mal, ob das funktioniert

Verfasst: 17.07.2006 23:04
von Bananenweizen
komm morgen abend erst wieder dazu. Schon mal Danke vorab. Halte das Forum auf dem laufenden ;)

Verfasst: 18.07.2006 19:40
von Bananenweizen
sorry, ich hab das mal so eingefügt wie ich denke aber hat nicht funktioniert.
Hab jetzt einfach mal den ganzen Code hier.
Der untere Schnipsel mit if $lesen == "ja" einfach ignorieren. Hatte da vorher n paar Teile die mittlerweile gelöscht wurden und ich nochmal neu mache. Aber das hat schon mal funktioniert *gg*

Code: Alles auswählen

<?php
if (sizeof($_POST) == 0) {
	include("index.php");
         exit();		}
   $hack = false;

$spielerLogin = $_POST["spielerLogin"];
$spielerPW = $_POST["spielerPW"];

$lesen = $_POST["lesen"];
$betreff = $_POST["betreff"];
$text = $_POST["text"];
$absender = $_POST["absender"];
$datum = $_POST["datum"];
$uhrzeit = $_POST["uhrzeit"];

$loeschen = array();

foreach( $_POST as $key => $value )
{
    if( strpos('loeschen_', $key) === 0 )
    {
        $nr = substr($key, 9);

        $loeschen[$nr] = $value;
    }
}

include("datenbank.phpi");
// Überprüfung der Daten mit der Datenbank
$richtigerName = mysql_fetch_array(mysql_query("select * from spieler where spielerLogin ='$spielerLogin'"));

$sql = '';
foreach( $loeschen as $key => $value )
{
    $sql = empty($sql) ? 'DELETE FROM mail WHERE mailID = '.$key : ' OR id = '.$key;
}
mysql_query($sql);


// Datenanzeige
$spieler = mysql_fetch_array(mysql_query("select spielerNick from spieler where spielerLogin ='$spielerLogin'"));
$spielerNick = $spieler[0];
$mail = mysql_query("select * from mail where mailEmpfaenger ='$spielerNick' order by mailDatum ");
?>


<html>
<head>
<title>Nachrichten</title>
<meta name="author" content="admin">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<font face="Verdana">
Hier ist die Übersicht aller Nachrichten:<p>
Ihre Daten: <br><br>
<table border="1">
<tr><td bgcolor="#C0C0C0">Absender:</td><td bgcolor="#C0C0C0">Betreff</td><td bgcolor="#C0C0C0">Datum</td></tr>
<?php

echo '<form action="nachrichten.php" method="post" enctype="multipart/form-data">';
	echo "<input type=\"hidden\" name=\"spielerLogin\" value=\"$spielerLogin\" </input>";
         echo "<input type=\"hidden\" name=\"spielerPW\" value=\"$spielerPW\" </input>";


$i = 0;

while( $daten = mysql_fetch_array($mail) )
{
   echo '<tr>
      <td>'.$daten[2].'</td>
      <td>'.$daten[3].'</td>
      <td>'.$daten[6].' '.$daten[7].'</td>
      <td><input type="Checkbox" name="loeschen_'.$i.'" value="'.$daten[0].'"></td>
   </tr>';

   $i++;
}

echo '</table><br><br><input type="Submit" value="Löschen"></form>';
?>


<? // Session noch einfügen ?>
	<form action="start.php" method="post" enctype="multipart/form-data">
	<input type="hidden" name="spielerLogin" value="<?php echo $spielerLogin; ?>" </input>
         <input type="hidden" name="spielerPW" value="<?php echo $spielerPW; ?>" </input>
	<input type="Submit" value="Startseite"> </form>


      	<form action="nachrichtneu.php" method="post" enctype="multipart/form-data">
	<input type="hidden" name="spielerLogin" value="<?php echo $spielerLogin; ?>" </input>
         <input type="hidden" name="spielerPW" value="<?php echo $spielerPW; ?>" </input>
	<input type="Submit" value="Nachricht verfassen"> </form>

<?php
if ($lesen == "ja") { ?>
<br>

<table border="1" width="60%"><tr><td width="90" bgcolor="#C0C0C0">
Absender:</td><td><?php echo $absender; ?></td></tr><tr><td bgcolor="#C0C0C0">
Betreff:</td><td><?php echo $betreff; ?></td></tr><tr><td bgcolor="#C0C0C0">
Text:</td><td><?php echo preg_replace("/\r?\n/","<br>",$text); ?></td></tr><tr><td bgcolor="#C0C0C0">
Uhrzeit:</td><td><?php echo $uhrzeit; ?></td></tr><tr><td bgcolor="#C0C0C0">
Datum:</td><td><?php echo $datum; ?></td></tr>
</table>

<?php }
?>
<br>
</font>
</body>
</html>

Verfasst: 18.07.2006 20:33
von BB-BF-BM
Ich habe mal versucht, das ganze übersichtlicher zu gestalten und hier und da Fehler verbessert, denn - wenn ich das mal so sagen darf - dein Code ist nahezu schrecklich :oops:
...und nebenbei auch noch unsicher...

Aber davon mal abgesehen, du hast ne PN mit dem bereinigten Code, da ich nicht so viel Code posten möchte. Du kannst die Datei dann ja hochladen und sie hier verlinken (KB:datei).
Den bereinigten Code kannst du ja nochmal testen und durchgehen.

Ein Fehler ist mir jedoch selbst aufgefallen.

Code: Alles auswählen

#
#--------------[ FINDE ]---------------
#

$sql = '';
foreach( $loeschen as $key => $value )
{
    $sql = empty($sql) ? 'DELETE FROM mail WHERE mailID = '.$key : ' OR id = '.$key;
}
mysql_query($sql); 


#
#--------------[ ERSETZE ES MIT FOLGENDEM ]---------------
#

$sql = '';
foreach( $loeschen as $key => $value )
{
    $sql = empty($sql) ? 'DELETE FROM mail WHERE mailID = '.$value : ' OR id = '.$value;
}
mysql_query($sql);
statt $key soltle da $value hin...