Bestehende Suchfunktion erweitern....aber WIE?

Hallo,

ich habe da ein fertiges Script mit einer Datenbankanbindung (MySQL). Es handelt sich dabei um eine Modeldatenbank. Nun ist ja alles ganz hübsch und funktioniert auch einwandfrei. Ich würde nur gerne die Suchfunktion erweitern. Genauer gesagt kann man bereits nach Name, PLZ, Geschlecht und ID suchen, aber das genügt leider nicht. Zusätzlich müsste man noch unterscheiden können, für welche Art von Aufnahmen die Models zur Verfügung stehen, dann noch Haarfarbe, Augenfarbe, Größe, Gewicht usw. Die Daten sind in der Datenbank vorhanden, aber leider in einer anderen Tabelle. Nun bin ich in PHP und SQL ein kompletter Schussel und habe nahezu null Ahnung davon! Meine Hoffnung besteht darin, dass bestehende Teile des Codes (Suche) „kopiert“ bzw. geringfügig verändert werden müssen, da ja die Suche an sich schon besteht und funktioniert. Sofern mir jemand dabei helfen kann, wäre es äußerst vorteilhaft, eine wirklich laienhafte Erklärung zu liefern, damit auch ich den Weg zur Lösung verstehe :smile:
Ich gebe hier jetzt mal den Scriptteil aus der Suchseite zum Besten. Das Ganze lässt sich auch live begutachten unter www.flashlight-model.de und dort ist es in der Modeldatenbank die „Suche“. Danke schonmal im Voraus für die Hilfe.

$geschlecht=" geschlecht = ‚$suche_geschlecht‘ „;
$name=“ AND name like ‚%$suche_name%‘ „;
$plz=“ AND plz like ‚%$suche_plz%‘ ";

$querya = "select * from modelsoft_user where $geschlecht $name $plz AND haarfarbe!=’’ AND augenfarbe!=’’ AND beruf!=’’ AND freigegeben=‚ja‘ ";
$resulta = mysql_query($querya);
$numbera = mysql_num_rows($resulta);

for ($a = 0; $a

zwei Möglichkeiten.
Die erste und bessere ist mir selbst noch ein wenig zu hoch. Basis ist der Befehl LEFT JOIN.
Hier erklärt: http://dev.mysql.com/doc/mysql/de/LEFT_JOIN_optimisa…
aber kann sein dass die anderen google-ergebnisse besser sind…
http://www.google.de/search?hl=de&q=%22left+join%22&…

Die zweite ist einfach innerhalb Deiner zweiten Abfrage durchzugehen, ob die gelieferten Resultate auch gültige Werte geliefert haben. Wenn nicht wird deren Ausgabe einfach nicht angezeigt.
also prinzipiell so:

select \* from table1 where suchkriterium1=x and suchkriterium2=y
while result
{
select \* from table2 where verweis=result[irgendwas]
while result2
 {
 if result2[suchkriterium3] == z AND result2[suchkriterium4] == a 
 then ausgabe = ...
 else ausgabe = "";
 }
}

Die erste und bessere ist mir selbst noch ein wenig zu hoch.
Basis ist der Befehl LEFT JOIN.

Den LEFT JOIN kannst du umgehen, indem du direkt den Foreign Key der einen Tabelle mit dem Primary Key der anderen Tabelle verknüpfst. Glaube, den JOIN haben sie nur in mysql reingehängt, damit das ganze irgendwie mit Access kompatibel wird (??) kenn mich da auch nicht so gut aus.

Funktioniert dann so:

tabelle1: ID (primary key), item1
tabelle2: ID, tabelle1_ID (foreign key), item2

select t1.item1, t2.item2 from tabelle1 t1, tabelle2 t2 where t1.ID = t2.tabelle1_ID;