SQL Problem

Hallo

ich möchte aus einer Tabelle Mehrer Datenzätze auslesen:

Es handelt sich um eine Liste mit freunden in der DB1 und un der DB2 wird gespeichert ob der jeweilige Benutzer Online ist oder net…

Es kommt kein fehler aber es wird immer nur ein Datensatz ausgelesen (der erste)…
Ich will aber alle…

was mache ich Falsch?

danke schon mal…

max

Du mussst die mysql verbindung vorher schließen.

Welchen sinn hatt es für eine website 2 db zu benutzen???

Das dürfte beim gezeigten Code technisch gar nicht hinhauen, weil die Abfragen auf die zweite DB ja in die auf die erste verschachtelt sind.

Datenbank-Abfragen in Schleifen sind nie eine gute Idee.

Vermutlich gar keinen (in diesem Falle).

Nein, ergibt wirklich gar keinen Sinn.

Die Daten gehören ganz offenbar zu ein und der selben Applikation - also ist die Verteilung auf mehrere DBs schon logisch alles andere als sinnvoll.

jetzt wo ich es sehe :whata:

Du musst dann in jedem durchgang die verbindung neu aufbauen…

Serverlast optimal ist das nicht.

Das wird auch nicht gehen.
Du kannst nicht in einer Schleife über die Ergebnisse einer Abfrage loopen, wenn du zwischendurch die Verbindung beendest.

Für das Problem hier sind zwei Dinge erforderlich:
[ol][li]Verabschiedung von dem unsinnigen Konzept, zusammengehörige Daten über mehrere Datenbanken zu verteilen,[/li]
[li]Nutzung eines Joins, statt Einzelabfragen innerhalb einer Schleife abzufeuern[/li][/ol]

er kann die ergebnisse doch auch vorher in einem arry speichern und ne andere schleifen art benutzen…

Joins wären aber trozdem die beste Lösung…

Also ich glaube ich muss nochmal erleutern warum ich 2 DBs baruche:

Also in der DB die zuerst geöffnet wird, hat jeder Benutzer seine Tabelle in der Seine Freunde gespeichert sind…
Und in der 2. DB liegt die Tabelle mit den Nutzerdaten (wie z.b. name, mail, Session, und eben auch der onlinestatus)

heißt ich rufe die erste auf um zu schauen welche Freunde er/sie hat und dann überprüfe ich den Onlinestatus…

Was ist das?

danke

[quote=„maxlex3“]Also ich glaube ich muss nochmal erleutern warum ich 2 DBs baruche:

Also in der DB die zuerst geöffnet wird, hat jeder Benutzer seine Tabelle in der Seine Freunde gespeichert sind…[/quote]
Eine eigene Tabelle für jeden Benutzer?
Dann ist dein Datenmodell also noch unsinniger, als es ursprünglich klang.

Faustregel: Daten gleicher Struktur kommen in die gleiche Tabelle!

Was ist das?[/quote]
Etwas, nachdem du bspw. mal googlen könntest.

Bruche ich immer noch eine verbindung in einer andere Tabelle

gelöst: mit Array

danke max

Bruche ich immer noch eine verbindung in einer andere Tabelle[/quote]
Natürlich, das läuft unter dem Stichwort Normalisierung.

Wenn die Benutzer untereinander Freunde werden können, kann man z.B. so eine Tabellenstruktur erstellen.
tbl_friends speichert dann z.B. Benutzer mit id 12 ist Freund von Benutzer mit id 31.
[attachment=0]Friends.png[/attachment]

so ähnlich gehts ja bei mir aber danke…

Das ganze ist gelöst…

Nach dem zu urteilen was ich hier gelesen habe, zweifle ich irgendwie daran, dass es vernünftig gelöst ist.

Bruche ich immer noch eine verbindung in einer andere Tabelle

gelöst: mit Array

danke max[/quote]

Das solltest du ja nicht tun :ps:

Du solltest lieber mal über den sinn deines gesamtes systems nachdenken…
Zb. du machst ne user tabelle in der alle daten drinn sind,die spalte mit den freunden könnte dann so ausehen:45,678,865 die zahlen stehen für die id’s der freunde ‚,‘ als trenner(array)

Argh … du hast von Normalisierung wohl auch noch nichts gehört …?

Wenn alles in eine tabelle passt sollte man das auch machen.

Kommt drauf an wie und wozu die daten benutz werden,ist nur ein bsp. .

Normaler weiße versuch ich alles zu normalisieren,dann sind manchmal 5 joins drinn^^

In dieser pauschalisierten Form und auf’s konkrete Beispiel bezogen - Blödsinn.

mal wieder hab ich den text nur überflogen und es falsch verstanden…

Wenn ich es jetzt richtig gelesen hab was er will…
…ergibt es noch weniger sinn es in 2 db’s zu machen :ps:

Hallo…

ich habe mir mal noch ein Paar gedanken gemacht:

Aber ich gehe jetzt mal davon aus das meine Community 200 nutzer hat…
Wenn dann jeder 30 freunde hat sind in der DB schon 6000 einträge führt das nicht zu langen abfragen?
Und was wenn es noch mehr werden?

lg max

Macht es nicht,ich hab ne tabelle mit ca.50000 einträgen und die abfrage dauert trozdem weit unter 0,05 sec