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@... (514) 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@... (514)
am 04.12.2007 - 10:12

Ü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 (2488)
am 04.12.2007 - 11:56

Wie sieht denn die Fehlermeldung aus?

gruß pebosi

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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke der Nachfrage. Ist

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

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 (5)
am 11.04.2008 - 10:47

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@... (514)
am 10.05.2008 - 07:31

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

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Probleme und Felermeldungen nach der Installation
  • Titel ausblenden - was ist die beste Möglichkeit
  • Neue Node im PopUp erstellen
  • Titelausgabe über PHP steuern
  • Bestimmtes Theme für angemeldete Benutzer
  • Menüansicht und Darstellung - Corporate Designproblem
  • Verlinkung zu neusten Nodes auf individueller Startseite
  • nicht-lesbare URL und Suchmaschinenfreunlichkeit
  • Habt Ihr ein "Grund-Installationspaket" mit allen für Euch wichtigen Modulen?
  • Suchfeld (manuell) einbauen und bearbeiten
  • Kommentar Formular in einer Art Thickbox
  • Leeres Vote
Weiter

Neue Kommentare

  • Glückwunsch !
    vor 15 Minuten 32 Sekunden
  • Vielen dank für deine
    vor 20 Minuten 42 Sekunden
  • Ja, und? Ich verstehe Dein
    vor 26 Minuten
  • Kleineres modul zum ausblenden der title
    vor 33 Minuten 46 Sekunden
  • @Sonja + Roger
    vor 36 Minuten 15 Sekunden
  • Kleineres modul zum ausblenden der title
    vor 38 Minuten 39 Sekunden
  • grüße dich
    vor 1 Stunde 28 Minuten
  • Eigentlich...
    vor 1 Stunde 34 Minuten
  • Views, das Standard-Werkzeug für Listen aller Art
    vor 1 Stunde 42 Minuten
  • Ok Danke für die Tipps. Mit
    vor 35 Minuten 26 Sekunden

Statistik

Beiträge im Forum: 113379
Registrierte User: 10235

Neue User:

  • Picanto
  • easye
  • k.spin

» Alle User anzeigen

User nach Punkten sortiert:
quiptime4706
stBorchert3634
md3536
Tobias Bähr3430
bv3268
dereine2589
Alexander Langer2511
pebosi2488
Thoor1721
rapsli1474
» User nach Punkten
Zur Zeit sind 13 User und 57 Gäste online.

Benutzer online

  • easye
  • margin1em
  • Waldknoblauch
  • flobweb
  • Bogus
  • lowskilla
  • Nemesis
  • Tobias Bähr
  • AliveAgain@drup...
  • mikeeve
  • karl1120
  • thfritz
  • SaschaCap
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
    • Drupal Module
    • Tutorials & How To's - Tipps & Tricks
      • Kurztipps - Dinge die Stunden sparen können.
        • !important in CSS stylesheets verwenden
        • (nachträgliche) Multisite-Installation
        • Anmeldename im Titel von selbst erstellten Blocks (oder Menüs)
        • Bedingt Seiten von Suchmachinen ausschliessen
        • Block Titel ausblenden
        • CSS Problem - Shift Taste beim reload halten
        • Devel Modul installieren
        • E-Mail-Einstellungen für Benutzer - mehrsprachig.
        • Eigenes Template für die Sprachauswahl
        • Firebug (Firefox Add-on) benutzen!
        • IE6 background-color CSS-bug
        • 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
      • 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 - Google Adsense ohne Zusatzmodul einbinden
      • Drupal 6 - ImageMagick mit XAMPP Lite nutzen
      • Drupal 6 - Installation FCK Editor
      • Drush - Das Schweizermesser für Drupal auf Kommandozeile
      • Einfache Bildergalerie in Drupal 6 mit Image und Lightbox2
      • 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)
      • 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
      • Portierung eine Themes von openwebdesign.org
      • Resourcen für den Theming-Ninja
      • 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
      • 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
  • 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 Referenzen
  • Installation
  • Update
  • Forum
  • Team

Quicklinks II

  • 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

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