j4nk3y: MySQL data type

Beitrag lesen

Hello again,

Nächstes bescheuertes Problem: in Tabelle 2 und 4 sowie 3 und 5 haben die Spalten denselben Namen, nun funktioniert das mit dem LEFT JOIN nicht so wie ich erwartet hätte. Das ein Array an Daten aus der Haupttabelle erstellt wird und dann für jede "gejointe" Tabelle, wenn denn nicht NULL zurück kommt, ein Array innerhalb des Arrays erzeugt wird in welches die Daten der "gejointen" Tabelle geschrieben werden.

Es kommt aber ein Array aus dem Query der die Reihe der zuletzt gejointen Tabelle beinhaltet, was logischerweise beim fetch_assoc() dazu führt, dass die Werte aus Tabelle 2 respektive 3, mit den Werten aus 4 bzw. 5 überschrieben werden.

Kann ich irgendwie schon im Query mein Array sortieren?

Vorher hatte ich es so, dass ich für die Haupttabelle eine Abfrage gestellt habe und dann über die Ergebnismenge iteriert habe und für jede Iteration eine Anfrage an die nächste Tabelle gestellt habe um das Ergebnis eben in ein Array zu schreiben wo die Daten dann geordnet waren. Geordnet im Sinne von


[s] = Array(
  [$sid]= Array(
    [p]=Array(
      [$pid] = Array([h]=xyz,[he]=xyz,...,[m]=Array([$mid]=Array([h]=xyz,[he]=xyz,...)),
      [$pid] = Array([h]=xyz,[he]=xyz,...,[m]=Array([$mid]=Array([h]=xyz,[he]=xyz,...)),
      [data]=xyz,...),
    [p]=Array(
      [$pid] = Array([h]=xyz,[he]=xyz,...,[m]=Array([$mid]=Array([h]=xyz,[he]=xyz,...)),
      [data]=xyz,...)
,...)

Da das eben nicht besonders performant und eben zu viele Anfragen an die DB gestellt werden, muss ich das überarbeiten. Problem ist eben nur, das schon der Query ein "falsches" Ergebnis liefert.

Gruß
Jo