• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Mehrere Eingabegefelder in PHP, verbunden mit MySQL

Hallo Forum,

mich würde folgendes interessieren.

Angenommen ich habe 10 Eingabefelder, wobei keines als Pflichtfeld definiert ist.
Abhängig von der Eingabe in jedes Feld gibt es nun unterschiedliche Suchfunktionen in der MySQL Datenbank.

So meine ich es:

Feld 1 belegt
Feld 2
Feld 3 belegt

If (feld 1 && feld 2) { ...} oder

Feld 1
Feld 2 belegt
Feld 3 belegt

if (feld 1 && feld 3) {

Nur gibt es jetzt bei 10 Feldern 3 628 800 verschiedene Möglichkeiten nach etwas zu suchen.

Gibt es irgendeine spezielle Möglichkeit nicht alles mit einer if - Abfrage zu lösen?

Also so eine Art "matching" über alles laufen zu lassen?

Hoffentlich habe ich es halbwegs erklären können, was ich meinte :)

Danke schon einmal für jede Hilfe!

Mfg
Byron
 
Die Felder wären:
Firma
Grund
Lösung
Weitergeleitet an:
Datum der Bearbeitung:
Zeitraum:

Es kann nun passieren, dass jemand Firma und Grund ausfüllt, oder auch Lösung und Zeitraum, vielleicht auch alle zusammen.

Und da würden sich ja dann die Abfragen in der Mysql Datenbank jeweils ändern.

Ich habe nun gelesen, dass es mit einem select * from intern where match(firma, grund, usf) against ('Abfrage') funktioniert.

Ist es das, nach was ich suche?
 
Hi.

Ich hab ein ähliches Problem letztens wie folgt gelöst:

Code:
$sql = "SELECT  * FROM <tabname> WHERE ( ";             // SQL Statement beginnen
if("" != $feld1)						                      // Für jedes Feld das gesetzt ist
{								                               // einen AND Ausdruck zum WHERE-Teil
	$sql .= "(<feld1_spaltenname> = '".$feld1."') AND "; // hinzufügen.
}
if("" != $feld2)
{
	$sql .= "(<feld2_spaltenname> = '".$feld2."') AND ";
}
.
.
.
if("" != $feld<n>)
{
	$sql .= "(<feld<n>_spaltenname> = '".$feld<n>."') AND ";
}
$sql = substr($sql, 0, strlen($sql)-4).")";			// Letztes (und damit überflüssiges) 
								                            // AND entfernen und Schließende 
								                            // Klammer anhängen.

Mag nicht der eleganteste Weg sein, aber hat seinen Zweck erfüllt.

MfG felloritas.
 
vielleicht noch ein bisschen allgemeiner aber auch nicht so richtig schoen:

Code:
$felder = array ("1" => 'feldname1',
                        "2" => 'feldname2');

foreach ($felder as $key => $value)
{
    $inhalt = $_POST['feld'.$key]; // vorher durchchecken
    if ($inhalt != "") {
        $sql .= "AND (".$value." = "'.$inhalt.'")";
    }
}
 
Oben