Lupus: Intelligente Suche

Beitrag lesen

Der Witz ist, dass man nicht nur ein Feld hat, in das man einen oder mehrere Suchbegriffe eingibt, sondern man hat für jede Spalte ein eigenes Suchfeld(in einem Formular).
Es soll dann nach einem Datensatz suchen, der alle "kriterien" der augefüllten Felder einhält - und die nicht ausgefüllten ingnoriert.

Möglich wäre das schon so:
$sql = "SELECT id, tierart, eigentuemer,... FROM animals WHERE ";
if (trim($_POST['gewicht'])!='') {
  $sql .= "MATCH gewicht AGAINST '".$_POST['gewicht']."'";
  // Abfragen ob weitere Felder ausgefüllt sind, Wenn ja: $sql .= " AND ";
}
if (trim($_POST['eigentuemer'])!='') {
  $sql .= "MATCH eigentuemer AGAINST '".$_POST['eigentuemer']."'";
  // Abfragen ob weitere Felder ausgefüllt sind, Wenn ja: $sql .= " AND ";
}
//... die if abfrage für alle Spalten wiederhohlen.

Aber das Problem ist, dass die Tabelle 27 spalten hat und der Code dann extrem unübersichtlich wird...
Und so kann immernoch nicht nach Teilen aus Wörtern gesucht werden, also wenn die nach der Tierart Haustier gesucht, soll man diesen Datensatz auch finden denn man nur Haus[...], [...]tier, oder [...]ustie[...] in <input name="haustier" .../> eingibt.

Jetzt suche ich nach einem guten Query, der all das kann/erfüllt,...

Ich hoffe das mein Problem so einigermassen klar geschildert ist.