2010-11-29 9 views
0

Hey,
Ich möchte Daten aus drei Tabellen sammeln, aber ich weiß nicht wirklich, wie ich das tun soll, weil ich mehrdimensionale Arrays erstellen und sie mit PHP verwenden möchte. Ich bin neu zu pgsql, also weiß ich nicht wirklich, was die Grenzen sind :)
So könnte mir jemand zeigen, wie man ein einfaches pgsql Array herstellt?Wie kann ich mit PostreSQL ein multidimensionales Array erstellen und kann PHP damit umgehen?

dank

+1

Sie erstellen keine wirklich "Arrays" in RDBMSes. Wie sollen diese mehrdimensionalen Arrays aussehen? Was benutzt du in PHP um dich mit der db zu verbinden? –

+0

Die Verwendung von Arrays in einer Datenbank ist oft ein Zeichen für ein schlechtes Datenbankdesign. Könnten Sie einige Beispieldaten (einschließlich Tabellendefinitionen) und die erwartete Ausgabe basierend auf diesen Daten veröffentlichen? –

Antwort

1

In Postgre gibt es Array-Datentypen (Array-Versionen fast aller einfachen Datentypen). Aber ich würde nicht empfehlen, sie zu verwenden, speziell nicht in Kombination mit PHP. Denn mit den aktuellen Datenbank-Funktionen wird das Array als String zurückgegeben. Außerdem widerspricht es dem Zweck einer relationalen Datenbank, bei der ein Array als eine Anzahl von Zeilen einer Spalte betrachtet werden sollte. Keine einzige Zeile einer einzelnen Spalte.

Um zu versuchen, Ihre Frage zu beantworten. Sie sollten das "tiefste" Element Ihres mehrdimensionalen Arrays als "Zeile" aus der Datenbank betrachten. wo mehrere Spalten den Pfad angeben, den es braucht, um zu dem Wert zu gelangen.

Beispiel:

while($row = $result->fetch_object()) { 

    $multi_array[$row->base][$row->layer] = $row->value 

} 
0

Typischerweise wird eine Datenbank, die eine flache Anordnung von kondensierten Ergebnissen zurück. Daher können Sie höchstwahrscheinlich keine einzige Abfrage ausführen, um die verschachtelten Elemente so zu bearbeiten, wie Sie möchten. Ich habe jedoch nicht mit PostgreSQL gearbeitet.

Mein Rat wäre, mehrere Abfragen zu machen, um die Daten zu erhalten, die Sie benötigen, und sie dann in der gewünschten Konfiguration zu platzieren.

Vielleicht kann jemand, der mit Postgre gearbeitet hat, bestätigen?

Verwandte Themen