Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

[Gelöst] Funktion db_result in Drupal 7 nicht mehr vorhanden?

Eingetragen von kata (169)
am 14.01.2011 - 23:25 Uhr in
  • Module
  • Drupal 7.x

In Drupal 6 lasse ich mir in einem Block per Php eine Übersicht der Stichworte anzeigen. Zu jedem Stichwort wird dabei auch die Anzahl der zugeordneten Nodes angezeigt.

Beim Versuch, diesen Block in Drupal 7 zu benutzen, bekomme ich den Fatal error: Call to undefined function db_result() in /home/www/d7/modules/php/php.module(75) : eval()'d code. Wenn ich $count = db_result(.... auskommentiere, funktioniert die Abfrage und die Stichworte werden angezeigt, allerdings natürlich ohne die Anzahl der zugeordneten Beiträge.

Gibt es diese Funktion in Drupal 7 nicht mehr? Und gibt es einen Ersatz? Ich poste hier mal meinen Code für Drupal 6. Die wesentlichen Bestandteile habe ich aus einem Beitrag auf drupal.org und habe diese nur ein bisschen auf meine Wünsche angepasst. Eine Suche per Google und auf api.drupal.org hat nicht wirklich etwas Passendes gebracht. Da ich aber auch nicht wirklich Ahnung von den Hintergründen habe, suche ich vielleicht auch falsch und erkenne die Lösung nicht.

Auf Views oder andere Module würde ich gerne verzichten, da die Lösung mit diesen paar Zeilen Code in einem Block einfach so simpel ist.

<?php
$vid
= 1;
 
$terms = taxonomy_get_tree($vid);
  foreach (
$terms as $term ) {
     
$count = db_result(db_query("SELECT COUNT(nid) FROM {term_node} WHERE tid = %d ", $term->tid));
      if (
$count) {   /* don't show terms with 0 count */
        
print '<a href="/stichworte/'.$term->name.'">'.$term->name.'&nbsp;('.$count.')</a><br />';
       }
   }
?>

‹ Bestellformular mit Webform? WYSIWYG und ImageBrowser ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Es hat sich einiges getan am

Eingetragen von wla (9213)
am 14.01.2011 - 23:58 Uhr

Es hat sich einiges getan am Database Abstraction Layer. db_result ist nicht mehr da und der Aufruf von db_query hat sich auch geändert. Du solltest Dir mal die Dokumentation dazu zu Gemüte führen.

Beste Grüße
Werner

.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *

  • Anmelden oder Registrieren um Kommentare zu schreiben

Besten Dank für den Link! Da

Eingetragen von kata (169)
am 15.01.2011 - 00:19 Uhr

Besten Dank für den Link! Da ich mich schon länger nicht mehr auf den api-Seiten umgeschaut habe, fehlte mir der richtige Einstiegspunkt. Scheint ja doch etwas grunglegendere Änderungen gegeben zu haben, als einfach nur den Funktionsnamen zu ändern:-) Werde mir also mal db_query genauer ansehen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

6.x -> 7.x

Eingetragen von stBorchert (6003)
am 15.01.2011 - 00:26 Uhr

Hallo.
Interessant könnte für Dich auch Converting 6.x modules to 7.x und dort speziell der Punkt db_result() has been removed; use ->fetchField() instead sein.

 Stefan

Tipp: Beachte die Verhaltensregeln des DrupalCenter.

Logo undpaul

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe mir jetzt mal die

Eingetragen von kata (169)
am 15.01.2011 - 01:40 Uhr

Ich habe mir jetzt mal die Datenbank-Struktur angesehen: die Tabelle term_node gibt es nicht mehr, die nid und tid sind jetzt in der Tabelle taxonomy_index. So konnte das natürlich nicht funktionieren. Mit der folgenden Abfrage scheint es zu gehen:

$count = db_query("SELECT count(nid) FROM {taxonomy_index} WHERE tid = :tid ", array(':tid' => $term->tid))->fetchField();

Der gesamte Code wäre dann also:
<?php
$vid
= 1;
 
$terms = taxonomy_get_tree($vid);
  foreach (
$terms as $term ) {
     
$count = db_query("SELECT COUNT(nid) FROM {taxonomy_index} WHERE tid = :tid ", array(':tid' => $term->tid))->fetchField();
      if (
$count) {   /* don't show terms with 0 count */
        
print '<a href="/stichworte/'.$term->name.'">'.$term->name.'&nbsp;('.$count.')</a><br />';
       }
   }
?>

Ich sage mal vorsichtig: es scheint zu gehen, da ich das Ganze auf einer recht leeren Test-Installation mit nur drei Nodes ausführe.

Vielen Dank für eure Hinweise! Ohne diese Wegweiser hätte ich die entscheidenden Dokumentationen wohl nicht so schnell gefunden!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Preloader / Spnner entfernen Menu Link Modal-Modul
  • Schriftgröße standard einstellen
  • PHP 8.1 - Deprecated function: rtrim()
  • Drupal Website gestalten
  • MariaDB 10.6
  • Entity Reference - Title Felder werden als Link angezeigt
  • Tokens werden in Viev als Link angezeigt
  • [bug entdeckt & workaround gefunden] benutzerdefinierte Felder vom Userprofil tauchen ungefragt auch in den Forumtopics auf...
  • [gelöst] Mass contact Empfängerliste nach Taxonomy Term statt Rolle
  • Update V. 9.3.12 auf V. 9.4 mit Fehler: Modul mySQL fehlt. Bitte Hilfe.
  • Sprachpfad, in Drupal Korrekt einstellen, auch bei den Meta-Tags
  • Update von Drupal 9.3 auf 9.4 oder bei 9.3 bleiben
Weiter

Neue Kommentare

  • core_version_requirement: ^8
    vor 1 Tag 17 Stunden
  • core_version_requirement: ^8
    vor 1 Tag 17 Stunden
  • ok. Wenn ich das mache
    vor 1 Tag 18 Stunden
  • Bei gleichem Namen hat das
    vor 1 Tag 18 Stunden
  • Sorry, dass ich mich hier
    vor 1 Tag 18 Stunden
  • Habe Patch versucht
    vor 2 Tagen 1 Stunde
  • Hier wird ein Patsch
    vor 2 Tagen 3 Stunden
  • Mit Drupal geht das um 150
    vor 2 Tagen 14 Stunden
  • Ah, ok. Wenn es ein Paragraph
    vor 3 Tagen 14 Stunden
  • Also kleiner Nachtrag noch:
    vor 3 Tagen 15 Stunden

Statistik

Beiträge im Forum: 247864
Registrierte User: 19591

Neue User:

  • kudes
  • Tkakah
  • JeraldFub

» Alle User anzeigen

User nach Punkten sortiert:
wla9213
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 1 Benutzer und 7 Gäste online.

Benutzer online

  • torfnase

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