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@... (517) am 25.11.2007 - 23: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@... (517)
am 04.12.2007 - 11: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?

Auf der Suche nach Drupal Entwicklung? » www.forward-media.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie sieht denn die

Eingetragen von pebosi (2490)
am 04.12.2007 - 12: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@... (517)
am 10.12.2007 - 02:07 Uhr

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

Auf der Suche nach Drupal Entwicklung? » www.forward-media.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Security: SQL-Injection beachten

Eingetragen von Carsten Müller (15)
am 11.04.2008 - 11: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);

  • Anmelden oder Registrieren um Kommentare zu schreiben

Diese Platzhalter sind sehr

Eingetragen von derjochenmeyer@... (517)
am 10.05.2008 - 08: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.

Auf der Suche nach Drupal Entwicklung? » www.forward-media.de

  • Anmelden oder Registrieren um Kommentare zu schreiben
Drupal 7 Demo-Website

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Node-Speichern wird mit zunehmender Laufzeit des Servers langsam
  • Fatal error: Maximum execution time of 30 seconds exceeded in ....../includes/file.inc on line 934
  • Probleme bei der Installation von memcache
  • Treffen in Düsseldorf - 8.9. und 22.9.2010
  • [erledigt] id und klassen bei blöcken
  • Anzahl der erstellten Nodes eines bestimmten Contenttypes für bestimmte Rollen limitieren
  • Seiten kombinieren
  • Drupal Übersetzung Englisch Deutsch
  • Fragen vor Umstieg zu Drupal 6 von Joomla
  • Lightbox-2 Inputfilter
  • Kostenplfichtige Useraccounts
  • Such-Index: Problem mit ISBNs / großen Zahlen
Weiter

Neue Kommentare

  • Zum einen würde ich den
    vor 2 Stunden 8 Minuten
  • Das Aktivieren von Modulen
    vor 2 Stunden 15 Minuten
  • Lies dich mal in Ruhe ein,
    vor 2 Stunden 19 Minuten
  • Hallo, das heißt, dass Dein
    vor 2 Stunden 26 Minuten
  • danke für den tip!
    vor 2 Stunden 54 Minuten
  • Nur ein Tip, aber ich würde
    vor 3 Stunden 19 Minuten
  • Ich habe noch das Problem,
    vor 3 Stunden 15 Minuten
  • E-Fee schrieb ...Entweder man
    vor 3 Stunden 38 Minuten
  • Tja, was heiß quasi Standard?
    vor 3 Stunden 53 Minuten
  • Hallo E-Fee, nach dem was Du
    vor 4 Stunden 10 Minuten

Statistik

Beiträge im Forum: 130977
Registrierte User: 11264

Neue User:

  • BAue
  • CodeFlatter
  • michastock

» Alle User anzeigen

User nach Punkten sortiert:
quiptime4714
stBorchert4318
md3609
Tobias Bähr3607
bv3490
Alexander Langer2737
dereine2604
pebosi2490
Thoor2223
rapsli1505
» User nach Punkten
Zur Zeit sind 2 User und 25 Gäste online.

Benutzer online

  • Tobias Bähr
  • t0b1

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
    • Drupal 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
        • CSS
        • Devel Modul installieren
        • E-Mail-Einstellungen für Benutzer - mehrsprachig.
        • Eigenes Template für die Sprachauswahl
        • Firebug (Firefox Add-on) benutzen!
        • 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
        • 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 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)
      • Gutes Tutorial für Views 1 (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
      • Module updaten via Shell auf Windows
      • Module übersetzen
      • Perl-Script zum Erzeugen einer statischen Kopie einer Drupal-Website
      • Portierung eine Themes von openwebdesign.org
      • 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 Screencasts auf deutsch
  • Archiv

Buchempfehlung

Das Drupal-Entwicklerhandbuch
Der Praxisleitfaden für Drupal-basierte Webprojekte.
Drupal 6
Websites entwickeln und verwalten mit dem Open Source-CMS.
Das Drupal 6 Praxisbuch
Arbeiten mit Modulen, Themes und Templates

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 News
  • RSS Feed Planet
  • Twitter Drupalcenter
  • Drupal Demo
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association