2016-04-19 9 views
-1

Wenn ich ein Datum aus einer SQL-Abfrage auf meinem PHP-System erhalten möge, ich schreibe so etwas wiePHP Ergebnis aus einer Abfrage mit Alias ​​

<?php echo $sqlresult['fieldfromresult'];?> 

Ich habe mich gefragt, ob ich eine Alias ​​directely auf diese setzen kann " fieldfromresult '.

Beispiel:

SELECT tb1.*, tb2.*, tb3.* 
FROM tableone as tb1, tabletwo as tb2, tablethree as tb3 
WHERE 
id = 1 and 
tb1.idcolumn=tb2.idcolumn and 
tb1.idcolumn=tb3.idcolumn 

Sie sehen, sollte es einfach sein, wenn ich nur angeben, was ich von jedem Tisch wollen (ein, zwei oder drei), aber ich möchte alle. Der Name einiger dieser Spalten ist identisch. Zum Beispiel: Tableone und TableThree hat eine Spalte namens "Beschreibung".

Was ich in meinem PHP wollen, ist so etwas wie ein

<?php echo $sqlresult['tb1.description'];?> 

wenn ich verwende nur <?php echo $sqlresult['description'];?> funktioniert nicht.

Gibt es eine Möglichkeit, es zu machen, ohne die Spalten anzugeben, die ich in meiner Abfrage haben möchte?

+2

Zunächst einmal '* SELECT' wird gemeinsam Antipattern, ist es besser, alle Spaltennamen angeben. Zweitens ist das explizite 'JOIN' besser lesbar. – lad2025

+2

'var_dump ($ sqlresult)' und Sie werden genau sehen, was die Datenbank für Feldnamen erstellt hat. –

Antwort

0

Damit die Ausgabe sowohl den Tabellennamen als auch den Spaltennamen enthält, müssen Sie eine eigene Ausgabeklasse/-funktion schreiben, die Tabellenschema/Metadaten referenzieren und eigene Array-Schlüssel erstellen Dies.

Oder

Sie sie simpy Namen von Assosciation mit AS, so dass:

SELECT tb1.description AS t1_description, tb2.description AS t2_description ... etc 
Verwandte Themen