Rekrusive Funktion in PHP

Hallo,
kann mir jemand sagen, ob folgendes möglich ist:
Ich hab 3 Arrays mit unterschiedlichen SQL Suchergebnissen. Sie beinhalten alle je Index eine Zahl.
Nun möchte ich in einer weiteren Tabelle nach einer ID anhand meiner 3 Arrays suchen.
Meine Idee war, dass ich es iterativ mit Schleifen umsetze, da jedes Array eine unterschiedliche Größe hat.
z.b:
do{
// id aus Array1 zum SQL Statement hinzufügen
do{
// id aus Array2 zum SQL Statement hinzufügen
do{
// id aus Array3 zum SQL Statement hinzufügen
// SQL Statement ausführen
} while(Dauer von Array 3);
} while(Dauer von Array 2);
} while(Dauer von Array 1);

Kann ich dies nun in eine rekrusive Funktion umändern, wenn meine Arrays „unterschiedliche“ Größen haben?

Hallo,
kann mir jemand sagen, ob folgendes möglich ist:
Ich hab 3 Arrays mit unterschiedlichen SQL Suchergebnissen.
Sie beinhalten alle je Index eine Zahl.
Nun möchte ich in einer weiteren Tabelle nach einer ID anhand
meiner 3 Arrays suchen.
Meine Idee war, dass ich es iterativ mit Schleifen umsetze, da
jedes Array eine unterschiedliche Größe hat.
z.b:

warum, zur hölle , macht ihr immer keine beispiele . wie sieht so ein array aus , geheime datenstruktur ?

es gibt viele funktionen die mit arrays arbeiten.
array_merge , array_diff , array_udiff

Ich würd alle 3 Arrays , zu einem vereinen , und dann je nachdem wie dein SQL gebaut ist ala

§sql = „Sselect this from that where this in (“.explode(",",$mergedarray).")";

es zu einer suche zusammenführen.

Aber vielleicht meinst du auch was ganz anderes. tja, noch können wir alle nur auf den Bildschirm gugen, in zukunft vielleicht auch mal raus gugen. Bsi das soweit ist, bitte ich um vollständigkeit , mit beispielen, dann gibts auch gleich ne passende antwort gell .

Hi,

ne des ist keine geheime Datenstruktur.
Also insgesamt sind es 5 Arrays.
Die Arrays enthalten nach einem SQL Statement die enthaltenen Suchergebnisse.
z.B. Beim 1. Array sage ich „Select b_ID from archiv where aspect_ratio=’“.$aspect."’";
Nun sind in meinem 1. Array nach mysql_fetch_array() alle b_ID’s die eben diese Bedingungen erfüllen.
Im zweiten Array sind dann alle v_ID’s und so weiter.

Diese ganzen ID’s in den einzelnen Arrays brauch ich dann am Ende wenn ich nach meinen Medien suchen möchte. Ich wollte dann anhand meiner Arrays mir iterativ oder rekrusiv mein SQL Statement zusammenbauen und so jede Kombination durchmachen.

So sollte dann am Ende das SQL Statement ungefähr aussehen:
Select * from medium where b_ID=’".$b_Array[$b_index]."’ and v_ID=’".$v_Array[$v_index]."’ and l_ID=’".$l_Array[$l_index]."’ and z_ID=’".$z_Array[$z_index]."’ and p_ID=’".$p_Array[$p_index]."’";

Bloß weiß ich nicht wie ich das rekursiv machen könnte, da die Array unterschiedliche Größen haben.

Diese ganzen ID’s in den einzelnen Arrays brauch ich dann am
Ende wenn ich nach meinen Medien suchen möchte. Ich wollte
dann anhand meiner Arrays mir iterativ oder rekrusiv mein SQL
Statement zusammenbauen und so jede Kombination durchmachen.

So sollte dann am Ende das SQL Statement ungefähr aussehen:
Select * from medium where b_ID=’".$b_Array[$b_index]."’ and
v_ID=’".$v_Array[$v_index]."’ and
l_ID=’".$l_Array[$l_index]."’ and
z_ID=’".$z_Array[$z_index]."’ and
p_ID=’".$p_Array[$p_index]."’";

Bloß weiß ich nicht wie ich das rekursiv machen könnte, da die
Array unterschiedliche Größen haben.

hmm, ich seh schon , aber das sind ja super viele abfragen, soll das so sein oder fällt dir immoment kein besserer weg ein ?

Was sagt den dennoch beim Suchen

$sql .= „SELECT * „;
$sql .= „FROM medium „;
$sql .= „WHERE b_ID in (’“.explode(“’,’“,$b_Array)“’) AND „;
$sql .= „v_ID in (’“.implode(“’,’“,$v_Array)."’) AND „;
$sql .= „l_ID in (’“.implode(“’,’",$v_Array)."’) AND „;
$sql .= „z_ID in (’“.implode(“’,’",$v_Array)."’) AND „;
$sql .= „p_ID in (’“.implode(“’,’",$v_Array)."’) ";

somit hast du auch alle ergenisse wo alles dinne vorkommt, da du ja eigentlich sowieso alle haben willst, würd ich das eben in ein statement füllen.

grösser und kleiner geht ja nicht um die menge einzugrenezen, deswegen dachte ich an feld IN (wert1,wert8,wert5,wert14,wert2)

solange also einer der werte vorkommt ist der ausdruck war.

wie also auch immer dein Array aussieht, ich denk rd ist also kein assoziatives . Sonst muss du das eben noch vorher in ein string verwandeln (wenn implode nicht reicht).