WinFuture-Forum.de: Etwas Grundsätzliches... - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Etwas Grundsätzliches... Daten aus Datenbank ...


#1 Mitglied ist offline   sladaloose 

  • Gruppe: aktive Mitglieder
  • Beiträge: 347
  • Beigetreten: 30. Juni 04
  • Reputation: 0

geschrieben 15. September 2005 - 10:43

Hallo,

irgendwie finde ich keine Lösung oder ich steh nur auf dem Schlauch.

In jeder Programmiersprache, sei es C oder Java oder einfach nur PHP, überall muss ich, wenn ich auf eine Datenbank zugreifen will, SQL-Befehle in Textform schreiben und die losrennen lassen.

Jetzt ist es so, dass ich mit PHP ein Formular hab, sagen wir eine Liste, die immer unterschiedlich, je nach Datenbankabfrage mit Werten gefüllt wird.

Ich hab also für jede Liste eine eigene PHP-Datei. Die sieht immer gleich aus, bekommt nur immer einen anderen SQL-Befehl drübergestülpt.

Und genau das find ich etwas stressig: Die Liste ist genormt, aber die SQL Befehle nicht, weswegen ich massig Daten hab.

Was gibts denn da noch für Ansätze? Ich will im Endeffekt eine einzige PHP-Datei haben und ich klick auf der Oberfläche nur noch die Daten an, die erscheinen sollen. Jetzt könnt ich natürlich hergehen und alle SQL's in eine Datei schreiben und mit if's auswerten, aber das wird glaub ich etwas zu unübersichtlich und da kann ich gleich meine einzeldateien behalten. Wie dynamisiert man sowas?
0

Anzeige



#2 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 15. September 2005 - 14:01

Das geht ganz einfach mit einer eigenen Funktion:

function my_query($condition)
{
  return @mysql_query("SELECT * FROM tabelle WHERE spalte = '$condition'");
}


Nun kannst du mit my_query($_GET['typ'); z.B. die Abfrage beeinflussen, indem du den Typ an die Datei anhängst.

Du solltest die Funktion allerdings noch sinnvoll erweitern, z.B. indem du das Ergebnis in einen Array speicherst usw. (das war jetzt nur das Grundprinzip).

Habe ich jetzt nicht getestet, aber so müsste es einfach gehen ;D

Dieser Beitrag wurde von Slayer bearbeitet: 15. September 2005 - 14:02

Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#3 Mitglied ist offline   sladaloose 

  • Gruppe: aktive Mitglieder
  • Beiträge: 347
  • Beigetreten: 30. Juni 04
  • Reputation: 0

geschrieben 20. September 2005 - 06:39

Schon klar, dass das funktioniert, das script kompiliert man ja schon im Kopf fertig :wink:

Aber was machst du, wenn sich die Tabelle ändert und somit auch die Spalten?
Damit verlagere ich doch nur den SQL-Befehl auf eine Funktion (mal abgesehen davon, hab ich das eh schon implementiert). Im Endeffekt muss ich im vornherein wieder wissen A) Welche Tabelle, B) Welche Spalte und C) Welchen Wert ich abfragen will.
Und zu guter letzt muss ich immer das Rückgabearray auswerten, weshalb ich dann doch lieber gleich eine ganze Klasse drumherum schreib.
0

#4 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 20. September 2005 - 13:47

Ich verstehe dein Problem jetzt nicht, das kannst du mit Funktionen/Klassen ales wunderbar erreichen und mein Beispiel ist der Anfang dazu...
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#5 Mitglied ist offline   sladaloose 

  • Gruppe: aktive Mitglieder
  • Beiträge: 347
  • Beigetreten: 30. Juni 04
  • Reputation: 0

geschrieben 22. September 2005 - 08:26

Das Problem an sich ist, dass ich eine Routine will, die alles für mich macht, ohne dass ich mich explizit um die Benamsung von Tabellen und Spalten kümmern muss.
Die Frage ist halt, geht es grundsätzlich, dass ich eine Routine schreiben kann, die für mich Daten ausliest, ohne dass ich die großartig mit Daten füttere? Eigentlich eine Funktion, die wie von Zauberhand die Daten herbekommt.

Vielleicht bin ich aber auch zu Naiv...
0

#6 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 22. September 2005 - 15:41

Beitrag anzeigenZitat (sladaloose: 22.09.2005, 09:26)

Die Frage ist halt, geht es grundsätzlich, dass ich eine Routine schreiben kann, die für mich Daten ausliest, ohne dass ich die großartig mit Daten füttere? Eigentlich eine Funktion, die wie von Zauberhand die Daten herbekommt.


Aber logisch. Ein paar mal rand() und schwups hat man jede Menge Daten aus der Luft gegriffen. Naja, ich behaupte mal dass ich dich nicht verstanden habe ;)
0

#7 Mitglied ist offline   flo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 7.955
  • Beigetreten: 14. November 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 22. September 2005 - 16:17

Ich glaube verstanden zu haben was du willst

Du möchtest ohne angabe einer Tabelle usw, bestimmte daten auslesen, und das wird nicht funktionieren
0

#8 _Benjamin_

  • Gruppe: Gäste

geschrieben 22. September 2005 - 16:57

wenn ich mal von einer komplexen datenbank ausgehe mit sagen wir +1000 einträgen, die dazugehörigen scripte zur auslesung ...

dein vorhaben beginnt schon vollkommen falsch mit der aussage "Aber was machst du, wenn sich die Tabelle ändert und somit auch die Spalten?" lege dir ein ERM zu ... danach setzt du deine tabelle nochmal einer normalisierung [fall 1-3] hindurch und die kardinalitäten nicht vergessen.

ist das gegeben, musst du keine tabelle, spallte oder der gleichen ändern ... darin besteht dein denkproblem, nicht in einer lösung in einem flexiblen script, was nicht umsetzbar ist. denn dazu müsste dein script denken können ... und dazu sind dir zu sehr die hände gebunden ...
0

#9 Mitglied ist offline   sladaloose 

  • Gruppe: aktive Mitglieder
  • Beiträge: 347
  • Beigetreten: 30. Juni 04
  • Reputation: 0

geschrieben 24. September 2005 - 09:49

@Benjamin: So kann man es auch sehen... Aber ich mein eher, ich will dasselbe Script auf mehreren DB-Anwendungen setzen ohne dass ich immer großartig die Parameter pflegen muss. Wie gesagt, bin wahrscheinlich zu naiv und es geht wirklich nicht. Wie auch? Man kann ja nicht aus der Luft Daten zaubern, naja... rand() *g*

Momentan ist es so, dass ich für jede Tabelle ein eigenes Script habe, das auf die gleiche Weise funktioniert. Ist jetzt nur doof, wenn ich ständig diese ca. 30 Scripts anpassen muss, wenn die Ausgabe irgendwie anders aussehen soll etc. Ich will harmonisieren und standardisieren, etc.
Ich hab da schon eine Idee die ganzen Parameter in eine XML-Datei zu verlagern, nur schaff ich damit das Problem nicht grundsätzlich aus der Welt.
Meiner Ansicht nach sind Datenbanken viel zu dumm. Am liebsten würde ich dort noch ein paar Regeln hinterlegen, sprich Intelligenz für Tabellen...
0

#10 _Benjamin_

  • Gruppe: Gäste

geschrieben 24. September 2005 - 10:00

das einzige was mir einfällt um dein vorhaben zu vereinfachen ... weiße jede tabellen- / spaltenname einer variable zu und arbeite damit in deinen scripten ... so musst du nur noch die variablen datei bearbeiten, anstatt jedes einzelne script.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0