Eine Select Funktion zur Vereinfachung

ssj-brolly

Grünschnabel
Hallo zusammen

Ich habe mir schon seit einigerzeit vorgenommen, mir eine Select Funktion zu schreiben um es mir zu vereinfachen, sql Abfragen in PHP zu machen. Denn ich muss sehr häufig Daten auslesen können von einer Datenbank und bin es Leid, andauernd die folgende Struktur im PHP-Code zu schreiben:

SELECT
Feld
FROM
Tabelle
WHERE
Definition

Daher würde mir solch eine Funktion weiter helfen, bei der man nur die Parameter eingeben muss. damit meine ich --> welche tabelle? welches feld? u.s.w.

Kann mir da jemand weiterhelfen ich habe echt keinen Plan wie ich dies realisieren sollte.
 
Du hast dir die Antwort doch schon selbst gegeben.


function selectSql($tab){

}


Dann Wird einfach überprüft welche Tabelle ausgelesen werden soll
und und der Query Befehl ausgeführt.

Zurück geben würde ich dann das Result-Array
 
Ja, der Ablauf ist mir schon klar, jedoch weiss ich nicht wie ich das codieren soll, denn schliesslich gibts bei dem WHERE mehrere Bedingungen wie z.B. Like, And, Order by u.s.w. oder was ist, wenn es einen Link gibt, mit 2 verschiedenen Tabellen. Es ist für mich voll verwirrend, hab schon vieles versucht aber andauernd gescheitert...
 
Es kommt ja ganz darauf an, wofür Du es brauchst und wieviele verschiedene Möglichkeiten der Abfrage Du zulassen willst.
Du könntest ja mehrere Funktionen für unterschiedliche Abfragen machen und diese dann festlegen, so dass Du im Endeffekt z. B. 10 Möglichkeiten hast und alles andere unterbunden wird.
Du musst nur wissen, welche Möglichkeiten Du zulassen willst.
Ansonsten dürfte es doch recht schwer werden, ...

redlama
 
Ich stelle mal meine Frage anderst.

Ich sollte eine Abfrage machen können die wie folgt aussehen soll:

select(Tabelle : Feld, Feld , Feld....; Tabelle : Feld, Feld Feld ...; Bedingung)

Wobei die Bedingung z.B. T1.FeldID = T2.FeldIDFS ist. Wie kann ich die Funktion so coden, damit mir das result zurückgegeben wird?

Ich habe am Anfang eventuell meine Frage fallsch gestellt...
 
Zuletzt bearbeitet:
Die Antwort ist recht simpel: Garnicht. Das einzige, was möglich wäre, ist eine Funktion wie
PHP:
select(Array('spalte1', 'spalte2'), Array('tabelle1', 'tabelle2'), 'tabelle1.id=tabelle2.id AND tabelle1.name='.$name.' ORDER BY time);
Ich hoffe, du verstehst.
 
Entweder bin ich jetzt komplett Dumm oder hab ein totales blackout oder ihr versteht meine Frage nicht, weil ich sie "eventuell" fallsch gestellt habe... Mein Chef reisst mir den Kopf ab, wenn ich ihm nicht bald diese Funktion liefere...
 
oO ach jetzt is es dein Chef?

Ich sag dir eins: Diese Funktion ist schwachsinnig! Warum? Weil ich für das Hinschreiben dieses Querys(sei es noch so oft) ne Minute brauch. Und wenn man das überlegen(Was ja die meiste Zeit in Anspruch nimmt) mal wegrechnet, is es kein Unterschied. Mach dir lieber Gedanken wie du andere Arbeitsschritte vereinfach etc. kannst.
 
So, wie du dir die Funktion vorstellst, ist es einfach nicht möglich. Das einzige, was du machen könntest, ist eine Funktion, die als Parameter ein Array der Spaltennamen die du abfragen möchtest, ein Array der Tabellen, die abgefragt werden sollen, und einen String mit dem Teil hinter dem "WHERE" benötigt. Anstelle eines Strings könntest du den Teil, der hinter dem WHERE steht, auch noch spezieller übergeben, also z.B. ein 4-dim. Array mit Spalte1, Spalte2, Operator und Verknüpfung, dann ein Array für die Sortierung, und noch Parameter für GROUP BY, etc. Aber ich wage es zu bezweifeln, dass das die Programmierung vereinfacht. Die Sprache SQL wurde entwickelt, um eine einheitliche und einfache Sprache zur Abfrage von Daten aus einer Datenbank zu haben, und das ist meines Erachtens nach auch sehr gut geglückt.
 
Ich habe jetzt mehrere Tage Programmiert und bin endlich zu einem Schluss gekommen, es funktioniert endlich so wie ich es auch wollte, auch wenn ihr behauptet es gehe nicht, es hat geklappt, ihr n4ps.
 
Zurück