Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| dev:all:examples:sql-1 [03.05.2015 21:42] – [Eine Seite abrufen und dazu den Namen des zuhehörenden Users] Manuela v.d.Decken | dev:all:examples:sql-1 [25.10.2017 12:02] (aktuell) – [Eine Seite abrufen und dazu den Namen des zugehörenden Users] Manuela v.d.Decken | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Der richtige Einsatz von SQL-Abfragen ====== | ====== Der richtige Einsatz von SQL-Abfragen ====== | ||
| Dieses Kapitel soll häufige Fehler/ | Dieses Kapitel soll häufige Fehler/ | ||
| - | ===== Abruf eines einzelnen Users ===== | + | ===== Verschiedene Beispiele für mehr oder weniger komplexe SQL-Abfragen ===== |
| + | **Achtung: | ||
| + | ==== 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 8: | Zeile 10: | ||
| $query = $database-> | $query = $database-> | ||
| if ($query-> | if ($query-> | ||
| - | while ($user = $query->fetchRow()) { | + | while ($user = $query->fetchArray(MYSQLI_ASSOC)) { |
| | | ||
| // all ok, do something with the data | // all ok, do something with the data | ||
| Zeile 20: | Zeile 22: | ||
| * Das SQL-Statement entspricht nicht den SQL-Strikt Regeln und ist zusätzlich noch innerhalb der Argumentenklammer von -> | * Das SQL-Statement entspricht nicht den SQL-Strikt Regeln und ist zusätzlich noch innerhalb der Argumentenklammer von -> | ||
| * WHILE - diese Schleife ist überflüssig, | * WHILE - diese Schleife ist überflüssig, | ||
| - | * Die Abfrage auf numRows() ist überflüssig, | + | * Die Abfrage auf numRows() ist überflüssig, |
| Nach den neuen Standards von WB korrigiert, ergibt sich dadurch folgendes [color=green]richtige[/ | Nach den neuen Standards von WB korrigiert, ergibt sich dadurch folgendes [color=green]richtige[/ | ||
| Zeile 37: | Zeile 39: | ||
| </ | </ | ||
| - | ===== Eine Seite abrufen und dazu den Namen des zuhehörenden Users ===== | ||
| - | <code=SQL Snippet.php> | + | ==== Eine Seite abrufen und dazu den Namen des zugehörenden Users ==== |
| - | SELECT `u`.`display_name` `user_name`, `p`.* | + | //(zur Vereinfachung werden nur die SQL-Statements dargestellt.)// |
| - | FROM `wb1_pages` `p` | + | Hierzu werden Daten aus zwei Tabellen benötigt: die Daten aus ' |
| - | LEFT JOIN `wb1_users` `u` | + | 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 ' |
| - | ON `p`.`modified_by`=`u`.`user_id` | + | Es lohnt sich auf jeden Fall, sich in SQL einzulesen um die Grundlagen zu begreifen. |
| - | WHERE `p`.`page_id`=1 | + | <file sql Snippet.sql> |
| - | </code> | + | SELECT `wb_users`.`display_name`, |
| + | FROM `wb_pages` LEFT JOIN `wb_users` | ||
| + | ON `wb_pages`.`modified_by`=`wb_users`.`user_id` | ||
| + | WHERE `wb_pages`.`page_id`=1 | ||
| + | </file> | ||
| - | //... wird mit Auftauchen weiterer Beispiele kontinuierlich fortgesetzt!// | + | FIXME //... wird mit Auftauchen weiterer Beispiele kontinuierlich fortgesetzt!// |