So fange ich an Datenbankanfragen zu stellen

Gesperrt
Tom Quenten
Beiträge: 125
Registriert: Do 10. Jun 2004, 13:55
Wohnort: Gallinchen
Kontaktdaten:

So fange ich an Datenbankanfragen zu stellen

Beitrag von Tom Quenten »

Nachdem ich mich nun schon seit 14 Tagen mit Contenido beschäftigte und es mir von Anfang an in den Fingern juckte eigene Module zu schreiben, habe ich jetzt ENDLICH einen Anfang gefunden.

Mit dem Stückchen Code ist es möglich eigene Datenbankanfragen zu stellen. Es ist jetzt die einfachste Art und Weise. Es steht natürlich jedem Frei die Abfrage auch anders zu formulieren.

Code: Alles auswählen

<?php

// DB Classe initialisieren 
$db2 = new DB_Contenido; 

// Abfrage formulieren
// hier werden z.B. alle Datenbankfelder der Tabelle Content abgefragt
$sql = "SELECT * FROM {$cfg['tab']['content']}"; 

// Abesetzen der Anfrage auf die Datenbank 
$db2->query($sql); 

// Zeilenweise Auslesen aus der Datenbank bis kein weiterer Eintrag folgt
while ($db2->next_record())
  { 
    // Wiedergabe eines Datenfeldes
    // hier wird z.B. das Datenfeld Author aus der o.g. Tabelle wiedergegeben
    echo $db2->f('author');
    echo "<br>";
  }

?>
Etwas was mir am Anfang auch große Probleme bereitete waren die Aliase der Tabellen. Hier bin ich erst durch Hinweise von Andreas (kummer) darauf gebracht worden. Der folgende Code bewirkt das gleiche wie der o.g., man beachte aber die formulieret Abfrage. Hinter dem Tabellennamen finden wir AS a, genau damit haben wir der Tabelle den Alias a zugewiesen. Leider steht sowas nirgendswo, bzw. ich habe bisher sowas noch nciht finden können.

Code: Alles auswählen

<?php

// DB Classe initialisieren 
$db2 = new DB_Contenido; 

// Abfrage formulieren
// hier werden z.B. alle Datenbankfelder der Tabelle Content abgefragt
$sql = "SELECT a.author FROM {$cfg['tab']['content']} AS a"; 

// Abesetzen der Anfrage auf die Datenbank 
$db2->query($sql); 

// Zeilenweise Auslesen aus der Datenbank bis kein weiterer Eintrag folgt
while ($db2->next_record())
  { 
    // Wiedergabe eines Datenfeldes
    // hier wird z.B. das Datenfeld Author aus der o.g. Tabelle wiedergegeben
    echo $db2->f('author');
    echo "<br>";
  }

?>
So, vieleicht hilft das noch mehr Anfängern bei der Entwicklung einen Startpunkt zu finden. Eigentlich braucht man ja jetzt nur noch die Abfrageformulierungen ändern, also je nach Projekt, komplexer gestalten. Ich werde auf jeden Fall noch so dies und jenes Modul schreiben, von allen CMS Systemen die ich finden konnte, (und das waren einge) ist Contenido am flexibelsten, wenn man den oben angesprochenen Anfang gefunden hat.

Gruss
Tom
Wer fragt, ist ein Narr für fünf Minuten.
Wer nicht fragt, bleibt es für immer.

Handy doof? Tarif doof? Rechnung zu hoch?
Unter www.cottbushandy.de wird dir sicher geholfen!
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Re: So fange ich an Datenbankanfragen zu stellen

Beitrag von kummer »

Tom Quenten hat geschrieben:Leider steht sowas nirgendswo, bzw. ich habe bisher sowas noch nciht finden können.
nun ja, mysql selber hilft diesbezüglich weiter: http://dev.mysql.com/doc/mysql/en/index.html

gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: So fange ich an Datenbankanfragen zu stellen

Beitrag von Halchteranerin »

Hallo Tom,
Tom Quenten hat geschrieben:Hinter dem Tabellennamen finden wir AS a, genau damit haben wir der Tabelle den Alias a zugewiesen. Leider steht sowas nirgendswo, bzw. ich habe bisher sowas noch nciht finden können.
das ist bei Datenbanken etwas Stinknormales und gehoert zum Grundgeruest jeder Vorlesung zum Thema Datenbanken. Es hat auch nichts mit Contenido zu tun, falls der Eindruck entstanden sein sollte. Ich bin mir ziemlich sicher, dass es auch in jedem halbwegs guten Buch zum Thema Datenbanken oder SQL angesprochen wird.

Wer sich also ein bisschen mit Datenbanken beschaeftigt, weiss das auch. ;-)

Gruss
Christa
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

:idea:

nicht vergessen: es gab eine zeit, da wussten wir alle solches nicht. und nebenbei bemerkt: ohne zu wissen was, dürfen wir uns gewiss sein, dass es dinge zu wissen gibt, von den wir keine ahnung haben.

in diesem sinne: fragen ist immer erlaubt; und andere an dem teilhaben lassen, was man entdeckt hat, genau so.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

kummer hat geschrieben:in diesem sinne: fragen ist immer erlaubt; und andere an dem teilhaben lassen, was man entdeckt hat, genau so.
Och, ich habe auch nichts dagegen gesagt, und natuerlich ist es schoen, dass er andere an seinem Wissen teilhaben laesst. Es war auch nicht als Vorwurf gemeint, sondern nur als Hinweis, dass die AS-Konstrukte nichts Weltbewegendes sind.

In dem Zusammenhang finde ich es uebrigens auch besser, aussagekraeftige Alias-Namen zu nehmen als Buchstaben. :) Ich habe bei manchen Modulen gesehen, dass sie jeweils den Tabellennamen nehmen, also z.B. CAT fuer con_cat, oder CATART fuer con_cat_art usw. Es ist zwar kuerzer, a, b, c usw. zu schreiben, aber wenn man komplexe Anfragen hat, erleichtert es die Nachbearbeitung durch andere. Es ist mir aber auch klar, dass das Geschmackssache ist. :P

Gruss
Christa
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

der sinn der verwendung von aliasen ist ausschliesslich deren kürze. es gibt keinen anderen grund. freilich geschmackssache - wenn ich allerdings ein alias verwende, welches genau so lang aber dann doch nicht ganz gleich ist wie der tabellenname, dann habe ich eine negative bilanz: ich schreibe gleich viel, habe aber nochmals einen zusätzlichen bezeichner, den ich mir merken muss. man kann nämlich auch gleich einfach den tabellennamen verwenden. aber du hast schon recht: es ist geschmackssache.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

also ich find den beitrag sehr gut... damit das auch mal einer sagt...
*** make your own tools (wishlist :: thx)
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

logisch! :oops: danke tom! :wink:
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

emergence hat geschrieben:also ich find den beitrag sehr gut... damit das auch mal einer sagt...
Ich hatte ja auch geschrieben 'natuerlich ist es schoen, dass er andere an seinem Wissen teilhaben laesst'. :)
Es lag mir auch fern, ihn irgendwie zu 'entmutigen', sorry, falls es so angekommen ist! :oops:
Tom Quenten
Beiträge: 125
Registriert: Do 10. Jun 2004, 13:55
Wohnort: Gallinchen
Kontaktdaten:

Beitrag von Tom Quenten »

Mhhh, also mir machte es echte Kopfzerbrechen wie ich am besten Anfange. Aber aller Anfang ist ja bekanntlich schwer. Nun habe ich ihn ENDLICH gefunden. Nach dem was ich hier so alles gelsen habe, hapert es doch sehr oft an den DB Anfragen, genauso wie bei mir am Anfang, deshalb fand ich dies, zumal es nirgendwo so eindeutig steht für jemanden der mit Contenido frisch anfängt, doch ganz sinnvoll.

@Halchteranerin
das habe ich auch nicht entmutigend aufgefasst

@emergence
das musste aber auch mal gesagt werden! :lol:
Wer fragt, ist ein Narr für fünf Minuten.
Wer nicht fragt, bleibt es für immer.

Handy doof? Tarif doof? Rechnung zu hoch?
Unter www.cottbushandy.de wird dir sicher geholfen!
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

Tom Quenten hat geschrieben:deshalb fand ich dies, zumal es nirgendwo so eindeutig steht für jemanden der mit Contenido frisch anfängt, doch ganz sinnvoll.
war/ist es auch. ;-)

Ein Buchtipp, falls Du Dich in Sachen SQL-Anfragen 'perfektionieren' willst: SQL fuer Dummies von Allen G. Taylor. Ich selbst hab's nicht benutzt, aber ein Kollege, der vorher nicht viel mit SQL gemacht habe, war von dem Buch ganz begeistert.

Gruss
Christa
Gesperrt