rstmal Hallo an alle!
Ich habe angefangen mir PHP selber beizubringen. Jetzt bin ich soweit, dass ich Datensätze aus einer MySQL Datenbank in einer Tabelle ausgeben lasse und vor jeder Zeiler (in der ersten Spalte) eine Checkbox erstelle. Der Nutzer soll dann die einzelnen Datensätze auswählen können und mit ihnen weiterarbeiten können.
Leider bekomme ich es nicht hin, abzufragen, ob eine Checkbox angeklickt wurde und auch die print_r($_POST) Funktion zeigt mir das Array (auswahl) der Checkboxen nicht an (alle anderen POST Einträge werden angezeigt).
Hier der Code:
PHP-Code:
<?php
//Datenbankenlogin
mysql_connect("xxx","xxx","xxx")
or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
mysql_select_db("db")
or die ("Die Datenbank existiert nicht.");
//#############################################################
ob_start();
?>
<?php
print_r($_POST);
if ($_POST['test'])
{
if (isset($_POST['auswahl']))
{
foreach ($_REQUEST['auswahl'] as $value) {
echo $value;
} }
else { echo "LEER"; }
}
//implimentierung der notwendigen variablen für die Abfrage
$id = mysql_real_escape_string($_POST['id']);
$idbis = mysql_real_escape_string($_POST['idbis']);
$status = mysql_real_escape_string($_POST['status']);
$bestellcode = mysql_real_escape_string($_POST['bestellcode']);
$datumvon = mysql_real_escape_string($_POST['datumvon']);
$datumbis = mysql_real_escape_string($_POST['datumbis']);
$datum_erledigtvon = mysql_real_escape_string($_POST['datum_erledigtvon']);
$datum_erledigtbis = mysql_real_escape_string($_POST['datum_erledigtbis']);
$vorname = mysql_real_escape_string($_POST['vorname']);
$vornamebis = mysql_real_escape_string($_POST['vornamebis']);
$nachname = mysql_real_escape_string($_POST['nachname']);
$nachnamebis = mysql_real_escape_string($_POST['nachnamebis']);
$land = mysql_real_escape_string($_POST['land']);
$sonstiges = mysql_real_escape_string($_POST['sonstiges']);
if (isset($_POST["auswahlcheck"])) {
$auswahlcheck = "checked";
} //überprüft, ob alle haken in der tabelle gesetzt werden sollen
$zaehler = 0; //Zähler für die Anzahl der angezeigten Datensätze
//#############################################################
//implimentierung der einzelnen Abfragen
$conditions = array();
if (!empty($_POST['idbis'])) {
$conditions[] = "ID >= '$id' AND ID <= '$idbis'";
} else {
if (!empty($_POST['id'])) {
$conditions[] = "ID LIKE '$id'";
}
}
if (!empty($_POST['status'])) {
$conditions[] = "Status LIKE '$status'";
}
if (!empty($_POST['sonstiges'])) {
$conditions[] = "Sonstiges LIKE '$sonstiges%'";
}
if (!empty($_POST['bestellcode'])) {
$conditions[] = "bestell_code LIKE '$bestellcode%'";
}
if (!empty($_POST['land'])) {
if (isset($_POST['landcheck'])) {
$conditions[] = "Land NOT LIKE '$land%'";
} ELSE {
$conditions[] = "Land LIKE '$land%'";
}
}
if (!empty($_POST['datumbis'])) {
$conditions[] = "Datum BETWEEN DATE '$datumvon' AND DATE '$datumbis'";
} else {
if (!empty($_POST['datumvon'])) {
$conditions[] = "datum LIKE '$datumvon'";
}
}
if (!empty($_POST['datum_erledigtbis'])) {
$conditions[] = "Datum_bearbeitet BETWEEN DATE '$datum_erledigtvon' AND DATE '$datum_erledigtbis'";
} else {
if (!empty($_POST['datum_erledigtvon'])) {
$conditions[] = "datum_bearbeitet LIKE '$datum_erledigtvon'";
}
}
if (!empty($_POST['vornamebis'])) {
$conditions[] = "Vorname >= '$vorname%' AND Vorname < '$vornamebis%' OR Vorname LIKE '$vornamebis%'";
} else {
if (!empty($_POST['vorname'])) {
$conditions[] = "Vorname LIKE '$vorname%'";
}
}
if (!empty($_POST['nachnamebis'])) {
$conditions[] = "Nachname >= '$nachname%' AND Nachname < '$nachnamebis%' OR Nachname LIKE '$nachnamebis%'";
} else {
if (!empty($_POST['nachname'])) {
$conditions[] = "Nachname LIKE '$nachname%'";
}
}
if (count($conditions)) {
$condition = " Where " . implode(" AND ", $conditions);
} else {
$condition = "";
}
//#############################################################
//Erstellung der SELECT - Abfrage
$abfrage = "SELECT
ID,
datum,
bestell_code,
Einzel_Zubehoer,
Silencer1,
Silencer2,
Vorname,
Nachname,
Strasse,
PLZ,
Ort,
Land,
email,
Bemerkungen,
IP_Adr,
dogtag1_1,
dogtag1_2,
dogtag1_3,
dogtag1_4,
dogtag1_5,
dogtag2_1,
dogtag2_2,
dogtag2_3,
dogtag2_4,
dogtag2_5,
Einzeltag,
datum_bearbeitet,
Status,
Sonstiges
FROM
DB" . $condition;
$ergebnis = mysql_query($abfrage) or die ("MySQL-Fehler: " . mysql_error());
//#############################################################
?>
<?php //Generieren der Tabelle (1. Zeile - Überschriften)
?>
<table cellpadding=5 cellspacing=3 bgcolor="#c5dcf5" border=0 width=990>
<tr bgcolor="#A8FFD3">
<td class=top><b>AUSWAHL</b></td>
<td class=top><b>ID</b></td>
<td class=top><b>STATUS</b></td>
<td class=top><b>DATUM</b></td>
<td class=top><b>DATUM-BEARBEITET</b></td>
<td class=top><b>BESTELLCODE</b></td>
<td class=top><b>VORNAME</b></td>
<td class=top><b>NACHNAME</b></td>
<?php //Ansichtfilter für Kontaktdaten
if (isset($_POST["kontaktcheck"])) {
echo "<td class=top><b>STRAßE</b></td>";
echo "<td class=top><b>PLZ</b></td>";
echo "<td class=top><b>ORT</b></td>";
echo "<td class=top><b>LAND</b></td>";
echo "<td class=top><b>EMAIL</b></td>";
echo "<td class=top><b>IP-ADRESSE</b></td>";
}
?>
<td class=top><b>BEMERKUNGEN</b></td>
<?php //Ansichtfilter für Dogtageinträge
if (isset($_POST["dogtagcheck"])) {
echo "<td class=top><b>DOGTAG 1_1</b></td>";
echo "<td class=top><b>DOGTAG 1_2</b></td>";
echo "<td class=top><b>DOGTAG 1_3</b></td>";
echo "<td class=top><b>DOGTAG 1_4</b></td>";
echo "<td class=top><b>DOGTAG 1_5</b></td>";
echo "<td class=top><b>DOGTAG 2_1</b></td>";
echo "<td class=top><b>DOGTAG 2_2</b></td>";
echo "<td class=top><b>DOGTAG 2_3</b></td>";
echo "<td class=top><b>DOGTAG 2_4</b></td>";
echo "<td class=top><b>DOGTAG 2_5</b></td>";
echo "<td class=top><b>EINZELTAG</b></td>";
echo "<td class=top><b>SILENCER 1</b></td>";
echo "<td class=top><b>SILENCER 2</b></td>";
echo "<td class=top><b>EINZELZUBEHÖR</b></td>";
}
?>
<td class=top><b>SONSTIGES</b></td>
</tr>
<tr>
<?php //Generieren der Tabelle (Datensätze)
while($row = mysql_fetch_object($ergebnis))
{
?>
<tr>
<?php
echo "<td align=center class=blue><input type=checkbox name=\"auswahl[".$row->ID."]\" value=". $row->ID ." ". $auswahlcheck. "></td>"; ?>
<td width=350 style=background:#FFFFCC bordercolor=#FFCC66><?php echo $row->ID; ?></td>
<td width=350 style=background:#FFFFCC bordercolor=#FFCC66><?php echo $row->Status; ?></td>
<td width=350 style=background:#FFFFCC bordercolor=#FFCC66><?php echo $row->datum; ?></td>
<td width=350 style=background:#FFFFCC bordercolor=#FFCC66><?php echo $row->datum_bearbeitet; ?></td>
<td width=350 style=background:#FFFFCC bordercolor=#FFCC66><?php echo $row->bestell_code; ?></td>
<?php //Ansichtfilter für Kontaktdaten
if (isset($_POST["kontaktcheck"])) {
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->Vorname . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->Nachname . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->Strasse . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->PLZ . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->Ort . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->Land . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->email . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->IP_Adr . "</td>";
}
?>
<?php //Ansichtfilter für Dogtageinträge
if (isset($_POST["dogtagcheck"])) {
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->dogtag1_1 . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->dogtag1_2 . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->dogtag1_3 . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->dogtag1_4 . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->dogtag1_5 . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->dogtag2_1 . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->dogtag2_2 . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->dogtag2_3 . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->dogtag2_4 . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->dogtag2_5 . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->Einzeltag . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->Silencer1 . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->Silencer2 . "</td>";
echo "<td width=350 style=\"background:#FFFFCC\" bordercolor=#FFCC66>". $row->Einzel_Zubehoer . "</td>";
}
?>
<td width=350 style=background:#FFFFCC bordercolor=#FFCC66> <?php echo $row->Bemerkungen; ?> </td>
<td width=350 style=background:#FFFFCC bordercolor=#FFCC66> <?php echo $row->Sonstiges; ?> </td>
</tr>
<?php
$zaehler = $zaehler +1;
}
//#############################################################
?>
</tr>
</table>
<?php
echo "Anzahl: ".$zaehler;
mysql_free_result( $ergebnis );
echo "<br><br><br>";
require_once('abfrage.html'); //Einbinden der Abfrage
ob_end_flush();
?>
Wenn ich versuche mir das Array mit foreach ausgeben zu lassen kommt sogar eine Fehlermeldung.
PHP-Code:
foreach ($_REQUEST['auswahl'] as $value) {
echo $value;
}
Kann das nicht auch ein zeichen dafür sein, dass das Array entweder leer ist, oder nicht existiert??
Ich arbeite schon seit Stunden daran und stehe echt aufm Schlauch...