Formular und Schleifen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Bananenweizen
Mitglied
Beiträge: 9
Registriert: 15.07.2006 10:58

Beitrag 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 !
BB-BF-BM
Mitglied
Beiträge: 2179
Registriert: 28.10.2005 16:38
Wohnort: Essen

Beitrag 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
Bananenweizen
Mitglied
Beiträge: 9
Registriert: 15.07.2006 10:58

Beitrag von Bananenweizen »

komm morgen abend erst wieder dazu. Schon mal Danke vorab. Halte das Forum auf dem laufenden ;)
Bananenweizen
Mitglied
Beiträge: 9
Registriert: 15.07.2006 10:58

Beitrag 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>
BB-BF-BM
Mitglied
Beiträge: 2179
Registriert: 28.10.2005 16:38
Wohnort: Essen

Beitrag 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...
Antworten

Zurück zu „Coding & Technik“