phpbar.de logo

Mailinglisten-Archive

[php] verbessern des Suchalgorithmus

[php] verbessern des Suchalgorithmus

Alex Meyer alex-meyer_(at)_gmx.de
Tue, 4 Apr 2000 20:24:45 +0200


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? Oder gibt es vieleicht eine Funktion dafür?

Freue mich über jeden Denkanstoß.

--Alex Meyer



php::bar PHP Wiki   -   Listenarchive