Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Benutzerhandbuch › Fortgeschrittene › Tutorials & How To's - Tipps & Tricks › Kurztipps - Dinge die Stunden sparen können. ›

Kurztutorial - richtig SQL mit Drupal

Eingetragen von derjochenmeyer@... (591) am 25.11.2007 - 22:03 Uhr

Für Drupal Um- und Einsteiger: SQL auf drupalish mit entsprechenden drupal Funktionen:

<?php
// Alle veröffentlichten story nodes auswählen (alternativ 'page', 'blog'. 'deinContentTyp').
$sql = "SELECT * FROM {node} WHERE type = 'story' AND status = 1";
// db_query() macht die Abfrage, db_rewrite_sql() ist wichtig damit access rules beachtet werden.
$result = db_query(db_rewrite_sql($sql));

// Mit while() alle gefundenen Elemente der Abfrage abarbeiten.
// db_fetch_object() gibt die Resultate als Objekte aus (also mit "->" ansprechen).
while ($data = db_fetch_object($result)) {
       
// Mit node_load() komplettes node objekt laden. Auch hier die einzlenen Elemente üder "->" ansprechen.
   
$node = node_load($data->nid);

       
// print $node->nid; // Node ID ausgeben
        // print $node->title; // Node Title ausgeben

    // Was es alles auszugeben gibt? Testhalber mal folgendes auskommentieren:
    // print "<pre>";
    // print_r($node);   
    // print "</pre>";
   
    // Links zu den nodes ausgeben.
   
print '<a href="node/' . $node->nid. '">' . $node->title . '</a>';
}
?>

‹ Kurztutorial - MySQL JOINs mit Drupal nach oben Maximale Dateigröße für Uploads (Dateianhänge usw) vergrössern ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Übrigens SELECT * FROM ist

Eingetragen von derjochenmeyer@... (591)
am 04.12.2007 - 10:12 Uhr

Übrigens SELECT * FROM ist wichtig. Ich hatte gerade ein Problem mit SELECT nid FROM. Die explizite auswahl von "nid" hat zu ner SQL Fehlermeldung geführt. Weis jemand mehr dazu?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie sieht denn die

Eingetragen von pebosi (2645)
am 04.12.2007 - 11:56 Uhr

Wie sieht denn die Fehlermeldung aus?

gruß pebosi

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke der Nachfrage. Ist

Eingetragen von derjochenmeyer@... (591)
am 10.12.2007 - 01:07 Uhr

Danke der Nachfrage. Ist nicht reproduzierbar. Hatte wohl doch nichts damit zu tun :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Security: SQL-Injection beachten

Eingetragen von Carsten Müller (29)
am 11.04.2008 - 10:47 Uhr

Hi,

Drupal liefert von sich aus auch Security Features gegen SQl-Injection und XSS mit.
Dies sollte beachtet werden, vor allem wenn man Tutorial schreibt.

Der Code korrekt:

<?php
// Alle veröffentlichten story nodes auswählen (alternativ 'page', 'blog'. 'deinContentTyp').

$sql = "SELECT * FROM {node} WHERE type = '%s' AND status = %d ";
// db_query() macht die Abfrage, db_rewrite_sql() ist wichtig damit access rules beachtet werden.
$result = db_query(db_rewrite_sql($sql, 'story', 1));

/*
Es werden Platzhalter im SQL-Statement gesetzt, die dann später durch die Variablen ersetzt werden. Dabei checkt Drupal, ob die Variablen zum Typ des Platzhalters passen ( '%s' = string, %d = Zahl)
*/

// Mit while() alle gefundenen Elemente der Abfrage abarbeiten.
// db_fetch_object() gibt die Resultate als Objekte aus (also mit "->" ansprechen).
while ($data = db_fetch_object($result)) {
 
// Mit node_load() komplettes node objekt laden. Auch hier die einzlenen Elemente üder "->" ansprechen.
 
$node = node_load($data->nid);
  print
'<a href="node/' . $node->nid. '">' . $node->title . '</a>';

 
/*ALTERNATIV */
 
print l($node->title, 'node/'.$node->nid); /* l() ist die Drupal Funktion um links zu erstellen

}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Diese Platzhalter sind sehr

Eingetragen von derjochenmeyer@... (591)
am 10.05.2008 - 07:31 Uhr

Diese Platzhalter sind sehr nützlich wenn man Usereingaben oder Variablen, die in irgendeiner From verarbeitet oder übertragen werden in den SQL Statements verwendet. Wenn man den Status oder den nodetype abfragt braucht man diese Platzhalter nicht. Grund: keine Gefahr, weil statischer Wert.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Tag 7 Stunden
  • Hey danke
    vor 2 Tagen 2 Stunden
  • Update: jetzt gibt's ein
    vor 2 Tagen 20 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 6 Stunden
  • Da scheint die Terminologie
    vor 1 Woche 9 Stunden
  • Kannst doch auch alles direkt
    vor 1 Woche 4 Tagen
  • In der entsprechenden View
    vor 1 Woche 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 4 Tagen
  • gelöst
    vor 4 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 19 Gäste online.

DrupalCenter durchsuchen:

Benutzerhandbuch

  • FAQ - Häufig gestellte Fragen.
  • Links & Downloads
  • Über Drupalcenter.de und das deutschsprachige Benutzerhandbuch
  • Über Drupal
  • Einsteiger
  • Fortgeschrittene
    • Best Practice - Drupal Sites - Guidelines
    • Die beliebtesten Themes und Module
    • Tutorials & How To's - Tipps & Tricks
      • Kurztipps - Dinge die Stunden sparen können.
        • (nachträgliche) Multisite-Installation
        • Anmeldename im Titel von selbst erstellten Blocks (oder Menüs)
        • Bedingt Seiten von Suchmachinen ausschliessen
        • Block Titel ausblenden
        • CHMOD im files bzw. Dokumentenverzeichnis mit PHP wenn Verzeichnisse von Drupal automatisch angelegt wurden und man nicht der Eigentümer ist und sie per FTP nicht löschen darf
        • CSS
        • Debugging Tools
        • Devel Modul installieren
        • E-Mail-Einstellungen für Benutzer - mehrsprachig.
        • Eigenes Template für die Sprachauswahl
        • Inhalt collapsibel darstellen
        • Korrekte Sprachversion auf Startseite mit i18n
        • Kurztutorial - MySQL JOINs mit Drupal
        • Kurztutorial - richtig SQL mit Drupal
        • Maximale Dateigröße für Uploads (Dateianhänge usw) vergrössern
        • MySQL: Referenz auf Tabelle trotz Präfix
        • Sidebar "ausblenden"
        • custom Search auf Drupal.org für Firefox
        • embedded views (mit Argumenten direkt in einer .tpl.php)
        • externe Daten als nodes importieren
        • print_r($node)
      • Notfallpläne - Tipps die Deine Drupalinstallation retten können
      • Anleitung zur Erstellung eines einfachen Kontaktformulars
      • Arbeiten mit dem Drupal Taxonomie-System [beinhaltet veraltete Inhalte]
      • Bearbeiten-Tab zu jeden Block hinzufügen
      • Block View mit Argument
      • Das Tagebuch einer Site
      • Drupal 6 - Automatisch unterschiedliche Bildgröße bei Teaser und Artikel
      • Drupal 6 - Eigene CSS Datei in ein Theme integrieren
      • Drupal 6 - Einfache Bildergalerie mit Image und Lightbox2
      • Drupal 6 - Einrichten eines Kalenders
      • Drupal 6 - Google Adsense ohne Zusatzmodul einbinden
      • Drupal 6 - Hauptnavigation mit DropDown Effekt ab Ebene Zwei
      • Drupal 6 - ImageMagick mit XAMPP Lite nutzen
      • Drupal 6 - Imagefield mit Imagecache und Colorbox
      • Drupal 6 - Installation FCK Editor
      • Drupal 6 - Installieren der WYSIWYG API inkl. Editoren
      • Drupal 7: mehrere Bilder in Node: 1 Bild in Anrisstext
      • Drupal Code Highlighting in Redmine Projektarchiv (CodeRay)
      • Drupal Theming: JavaScript einhängen in Abhängigkeit von Page-Variablen
      • Drush - Das Schweizermesser für Drupal auf Kommandozeile
      • Einfaches und erfolgreiches Patchen unter Windows
      • Eingabeformat & Inputfilter
      • Einrichten eines einfachen, statischen Menüsystems
      • Erstellen von Patches
      • Gallery mit CCK und Views erstellen (Drupal 5)
      • Header image Modul einrichten
      • Inhaltsübersicht für einen User mit einem View erstellen
      • Javascript und CSS-Dateien einbinden
      • Kontaktformular mit Jquery aufwerten
      • Leitfaden zur Erstellung von Suchmaschinenoptimierten Drupal-Sites
      • Mac OSX - Backupskript für Websites auf MAMP
      • Module updaten via Shell auf Windows
      • Module übersetzen
      • Perl-Script zum Erzeugen einer statischen Kopie einer Drupal-Website
      • Portierung eine Themes von openwebdesign.org
      • Prozentbalken bei Views (Balkendiagramm)
      • Themen eines Node-Formulars
      • Titel mit Stil
      • Umkreissuche mit Location- und Views-Modul
      • Usergalerie mit ImageCache, CCK, Views + Thickbox
      • Userprofil mit Usernodes erstellen
      • Validierung von Usereingaben bei Nodes
      • Variation vom Showroom auf drupalcenter.de
      • View mit Eingabeformular für neue Beiträge
      • WebSVN mit Drupal Code Highlighting
      • Zusätzliche Submit-Schaltfläche in Node-Formularen
      • i18n Language Switcher Block, die Links mit den Flaggen themen
      • ui.slider als Ersatz für den Ajax-Pager von Views
      • Zugriffsbeschränkungen für Nodes - eine Übersicht der Möglichkeiten
  • Entwicklung von Modulen und Themes
  • Drupalcenters Community
  • Drupal 7 Video-Trainings (Deutsch)
  • Drupal-Testumgebung erstellen
  • Drupal 6 Module
  • Drupal 7 Module
  • Drupal Screencasts auf deutsch
  • Archiv

Das Copyright des deutschsprachigen Drupal-Benutzerhandbuches unterliegt den jeweiligen Autoren. Übersetzungen des englischsprachigen Drupal-Benutzerhandbuches unterliegen der Creative Commons License, Attribution-ShareAlike 2.0.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association