phpbar.de logo

Mailinglisten-Archive

[php] Such Algorithmen

[php] Such Algorithmen

Alex Meyer alex-meyer_(at)_gmx.de
Sat, 4 Mar 2000 11:47:50 +0100


Hallo Liste,
ich sitze momentan an einem Projekt. Es soll ein "Singlefinder" werden. Das
heisst jemand kann sich in die
Datenbank eintragen (Hobbys(36 Auswahlmöglichkeiten),Alter,gewünschtes Alter
des Partners,
Wohnort,...).
Die abfrage klappt auch wunderbar, ausser das mit den Hobbys. Ich überprüfe
am Anfang
welche Hobbys gewählt wurden. Dann stecke ich diese in ein Array.
Jetzt erstellt eine Funktion einen Query:

--- Funktion START
function createHobbyQuery($array) {
	$string = "";
	$endArray = count($array);

	for ($i = 0;$i<=$endArray;$i++) {
		if ($i == 0) {
			$string .= " hobbyid.hobbynumber = '$array[$i]' OR ";
		}
		if ($i == $endArray) {
			$string .= "hobbyid.hobbynumber = '$array[$i]'";
			return trim($string);
		}
		$string .= "hobbyid.hobbynumber = '$array[$i]' OR ";
	}
}
--- Funktion ENDE

Wie Ihr seht ist das hier alles mit einer OR Verknüpfung realisiert.
Den fertige "Zwischenquery" setzte ich jetzt in den Endquery.

Jetzt das Problem:
Wenn Mann1 ca. 10 Hobbys gewählt hat und Frau1 auch 10, aber Frau1 hat nur 1
mal das
selbe Hobby wie Mann1, wird sie trotzdem (vorausgesetzt die anderen Daten
stimmen auch
überein) gefunden.

Jetzt endlich die Frage:
Wie kann ich so etwas präzisieren? Das z.B. mindestens 4 Hobbys
übereinstimmen müssen
oder so ähnlich?

Danke für die Antwort.

--Alex Meyer






php::bar PHP Wiki   -   Listenarchive