Benutzer-Werkzeuge

Webseiten-Werkzeuge


dev:all:examples:sql-1

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
dev:all:examples:sql-1 [23.10.2014 09:34] Manuela v.d.Deckendev:all:examples:sql-1 [03.06.2015 15:53] – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 ====== Der richtige Einsatz von SQL-Abfragen ====== ====== Der richtige Einsatz von SQL-Abfragen ======
 Dieses Kapitel soll häufige Fehler/Unsauberkeiten im Umgang mit Datenbanken in früheren Versionen von WB aufzeigen und auch gleich entsprechende Lösungen anbieten. Die beanstandeten Codefragmente sind **nicht** erfunden, sondern original aus WB und Modulen entnommen!  Dieses Kapitel soll häufige Fehler/Unsauberkeiten im Umgang mit Datenbanken in früheren Versionen von WB aufzeigen und auch gleich entsprechende Lösungen anbieten. Die beanstandeten Codefragmente sind **nicht** erfunden, sondern original aus WB und Modulen entnommen! 
-===== Abruf eines einzelnen Users =====+===== Verschiedene Beispiele für mehr oder weniger komplexe SQL-Abfragen ===== 
 +**Achtung:** Die folgenden Beispiele sind __**nicht**__ zur //**copy&paste**// Programmierung gedacht, sondern nur beispielhafte Denkanregungen, die aufzeigen sollen wie ein Problem gelöst werden kann! 
 +==== Abruf eines einzelnen Users ====
 Es wird einfach anhand der `user_id` ein einzelner Datensatz in der Tabelle `users` gesucht Es wird einfach anhand der `user_id` ein einzelner Datensatz in der Tabelle `users` gesucht
  
Zeile 27: Zeile 29:
      . 'WHERE `user_id`='.$user_id;      . 'WHERE `user_id`='.$user_id;
 if (($oResult = $oDb->doQuery($sql))) { if (($oResult = $oDb->doQuery($sql))) {
-    if (($aUser = $oResult->fetchRow(MYSQL_ASSOC))) {+    if (($aUser = $oResult->fetchArray())) {
         // all ok, do something with the data now         // all ok, do something with the data now
     } else {     } else {
Zeile 38: Zeile 40:
  
  
-**//wird mit Auftauchen weiterer Beispiele kontinuierlich fortgesetzt..//**+==== Eine Seite abrufen und dazu den Namen des zugehörenden Users ==== 
 +//(zur Vereinfachung werden nur die SQL-Statements dargestellt.)//\\ 
 +Hierzu werden Daten aus zwei Tabellen benötigt: die Daten aus 'wb_pages' sowie der Benutzername aus der Tabelle 'wb_users'
 +Diese Aufgabe ist ohne jeden zusätzlichen PHP-Code rein mit **SQL** elegant lösbar. Dazu müssen nur die beiden Tabellen über die Felder 'modified_by' und 'user_id' durch einen //JOIN// miteinander verknüpft werden.\\ 
 +Es lohnt sich auf jeden Fall, sich in SQL einzulesen um die Grundlagen zu begreifen. 
 +<code=SQL Snippet.php> 
 +SELECT `wb_users`.`display_name`, `wb_pages`.*  
 +FROM `wb_pages` LEFT JOIN `wb_users` 
 +    ON `wb_pages`.`modified_by`=`wb_users`.`user_id` 
 +WHERE `wb_pages`.`page_id`=1 
 +</code> 
 + 
 +FIXME //... wird mit Auftauchen weiterer Beispiele kontinuierlich fortgesetzt!//
  
dev/all/examples/sql-1.txt · Zuletzt geändert: 25.10.2017 12:02 von Manuela v.d.Decken