Ich möchte mittels einer Schleife meine SQL-Abfrage zusammensetzen. Da ich nicht weiss, wieviele Daten der Nutzer einschreibt, muss ich das letzte OR bzw AND mit Hilfe eines Reguären Ausdrucks löschen.
(Ich habe den selbigen bereits erfolgreich genutzt. In den Fall kam aber nur AND im String vor.)
Könnt ihr bitte mal schauen, wo mein Fehler liegt?
Der Reguläre Ausdruck wird nicht bearbeitet. Der String bleibt also gleich und verändert sich nicht.
Ich danke euch schonmal für die Hilfe.
(Ich habe den selbigen bereits erfolgreich genutzt. In den Fall kam aber nur AND im String vor.)
Könnt ihr bitte mal schauen, wo mein Fehler liegt?
Der Reguläre Ausdruck wird nicht bearbeitet. Der String bleibt also gleich und verändert sich nicht.
PHP-Code:
$qu="SELECT * FROM `archiv` WHERE `Ersteller` = 1 AND ( ";
for ($i=1; $i<6; $i++) {
echo"schleife";
echo $_POST['a'.$i.''];
if (!empty($_POST['a'.$i.'']) && !empty($_POST['s'.$i.''] )) {
if ($_POST['a'.$i.'']=='Laufende Nummer') {
$qu.=" `lfd_Nummer` = '".$_POST['s'.$i.'']."' ".$_POST['w'.$i.'']." ";
} elseif ($_POST['a'.$i.'']=='Inventarnummer, alt') {
$qu.=" `Inventarnummer_alt` = '".$_POST['s'.$i.'']."' ".$_POST['w'.$i.'']." ";
} elseif ($_POST['a'.$i.'']=='relative Datierung') {
$qu.=" `relative_Datierung` = '".$_POST['s'.$i.'']."' ".$_POST['w'.$i.'']." ";
} elseif ($_POST['a'.$i.'']=='absolute Datierung') {
$qu.=" `absolute_Datierung` = '".$_POST['s'.$i.'']."' ".$_POST['w'.$i.'']." ";
} else {
$qu.= " `".$_POST['a'.$i.'']."` = '".$_POST['s'.$i.'']."' ".$_POST['w'.$i.'']." ";
}
}
}
$par=" )";
$qu=ereg_replace("(AND|OR)$", $par, $qu );
Kommentar