Startseite
  • » Home
  • » Handbuch & FAQ
  • » Showroom
  • » Forum
  • » Drupalchannel
  • » Ü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@... (586) 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@... (586)
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?

» forward-media.de Drupal Entwicklung | Drupal Tutorials

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie sieht denn die

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

Wie sieht denn die Fehlermeldung aus?

gruß pebosi

gruß pebosi
--
http://pebosi.net

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke der Nachfrage. Ist

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

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

» forward-media.de Drupal Entwicklung | Drupal Tutorials

  • Anmelden oder Registrieren um Kommentare zu schreiben

Security: SQL-Injection beachten

Eingetragen von Carsten Müller (24)
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@... (586)
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.

» forward-media.de Drupal Entwicklung | Drupal Tutorials

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Neuer Core
  • Anzahl der mögliche uploads ändern...
  • Nodetype links?
  • Page-Titel auf Wusch ausblenden ?
  • mod_ruid RDocumentChroot und Drupal 7?
  • Link Menue auf eine aufgerufene Seite für eine weiter Auswahl
  • CKEditor und rechte
  • Nodetype page.tpl.php?
  • Speziellen, ausgeflipptes,Themme gesucht, bzw. wie erstellen?
  • Startseite
  • IE8 + ZEN Subtheme: Blinkt beim Seitenwechsel
  • Ubercart und Mengen
Weiter

Neue Kommentare

  • Du solltest einfach mal ein
    vor 3 Minuten 59 Sekunden
  • Nodetype links?
    vor 6 Minuten 38 Sekunden
  • Page Title ausblenden
    vor 15 Minuten 40 Sekunden
  • Globalredirect Modul
    vor 1 Minute 31 Sekunden
  • Hallo, und Danke für die
    vor 37 Minuten 57 Sekunden
  • Hallo, falls du in der
    vor 40 Minuten 12 Sekunden
  • Ein Drupal-Menü ist per
    vor 42 Minuten 27 Sekunden
  • Eine andere Idee wäre noch
    vor 1 Stunde 6 Minuten
  • Global
    vor 1 Stunde 13 Minuten
  • Hast Du das Modul Global
    vor 1 Stunde 23 Minuten

Statistik

Beiträge im Forum: 173328
Registrierte User: 15437

Neue User:

  • iGong
  • andreaszdw
  • kirk.spock

» Alle User anzeigen

User nach Punkten sortiert:
stBorchert5515
quiptime4713
Tobias Bähr3874
md3775
wla3739
bv3698
Thoor3678
Alexander Langer3268
dereine2635
Exterior2564
» User nach Punkten
Zur Zeit sind 8 User und 38 Gäste online.

Benutzer online

  • Patrick Schanen
  • wla
  • tfranz
  • kahta
  • Carsten Logemann
  • c3po
  • CWorks
  • Xeto

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
  • Bücherecke
  • Drupal 7 Video-Trainings (Deutsch)
  • Drupal 6 Module
  • Drupal 7 Module
  • Drupal Screencasts auf deutsch
  • Archiv

Buchempfehlung

Webseiten erstellen Drupal 7
Content - Layout - Administration
Das Drupal-Entwicklerhandbuch
Der Praxisleitfaden für Drupal-basierte Webprojekte.
Pro Drupal 7 Development
(Expert's Voice in Open Source)

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
  • » Showroom
  • » Forum
  • » Drupalchannel
  • » Ü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
  • Bücherecke

Quicklinks III

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

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed Drupal Podcast
  • 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