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

Anzahlnodes mit bestimmten Feld

Eingetragen von JenneMander (112)
am 27.03.2014 - 12:55 Uhr in
  • Modul-Entwicklung

Hallo Drupalcommunity,
ich möchte gerne via db_query herausbekommen wieviele Nodes mit einem bestimmten Inhalt ich habe. Dabei gelingt es mir leider nicht mit dem folgenden Code:

SELECT count(n.field_md_value) FROM {field_data_field_md} n WHERE n.field_md_value ='".$value."'"

Vielleicht kann mir von euch jemand helfen.
mit bestem Dank
Jenne

‹ DB Abfrage- Standardabfrage funktioniert nicht!??? hook_node_view_alter, wie funktioniert der? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Jenne

Eingetragen von Hyp1 (1463)
am 27.03.2014 - 13:11 Uhr

ist n.field_md_value ein VARCHAR Datentyp (wegen den Anführungszeichen)?
Gibt es eine Fehlermeldung schmal inm PHP log und Watchdog nach?

Eines noch, wenn Du diesen Query so aufrufst:
SELECT count(n.field_md_value) FROM {field_data_field_md} n WHERE n.field_md_value ='".$value."'"
bekommst Du mit fetch_object $row->count(n.field_md_value) als object zurück
mit fetch_array $row['count(n.field_md_value)'] als array.

Ich glaube das Objekt echo $row->count(n.field_md_value); kannst Du in PHP nicht so verwenden.
Als Array funktioniert es echo $row['count(n.field_md_value)']; .
Besser ist Du gibst auch count einen Alias:
SELECT count(n.field_md_value) AS cnt FROM {field_data_field_md} n WHERE n.field_md_value ='".$value."'"
Dann bekommst Du $row->cnt; (fetch_object) oder $row['cnt'] (fetch_array).

LG

  • Anmelden oder Registrieren um Kommentare zu schreiben

nutze db_query

Eingetragen von maen (547)
am 27.03.2014 - 13:24 Uhr

Du hast da einen SQL Select Befehl, aber kein db_query!

Bsp-Code:

<?php

$uid
= 1;
$result = db_query('SELECT n.nid, n.title, n.created
FROM {node} n WHERE n.uid = :uid'
, array(':uid' => $uid));
// Result is returned as a iterable object that returns a stdClass object on each iteration
foreach ($result as $record) {...

?>

Du musst einen join machen wegen der Felder mit dem gesuchten Typ, wenn Du von {node} ausgehst. Oder Du gehst direkt auf die Tabelle des Feldes, also von mir aus {field_data_field_bla} und lädst die alle.

dann in der foreach setzt Du einen counter, bspw.:

<?php

$counter
=0;
  foreach(){
...
$counter = $counter +1; // Geht auch schöner aber so versteht man es auch.
}
 
?>

Dann hast Du nachher die Anzahl der rows drin = Anzahl der nodes mit dem Feld.

PS: Aus didaktischen Gründen:
statt $uid stelle Dir $value vor!

PPS: Drupal way wäre entityfieldquery, ist am einfachsten. Da wurde auch in der KLasse direkt eine count Methode eingebunden.

$count = $query->count()->execute();

  • Anmelden oder Registrieren um Kommentare zu schreiben

ja sorrie, ich schreibe

Eingetragen von JenneMander (112)
am 28.03.2014 - 07:53 Uhr

ja sorrie, ich schreibe db_query(...), ich probiere gleich mal alles aus.
Also am einfachsten scheint da wirklich die Klasse EntityFieldQuery zu arbeiten:

hier meine Lösung:
[code]
$query = new EntityFieldQuery();
$query -> entityCondition('entity_type','node')
->fieldCondition('field_md_uuid','value',$uuid,'=');
$result = $query->count()->execute();
[/code]

mit bestem Dank
Jenne

  • Anmelden oder Registrieren um Kommentare zu schreiben

gerne!

Eingetragen von maen (547)
am 28.03.2014 - 09:31 Uhr

gerne!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
Weiter

Neue Kommentare

  • anyone has a working Betaflight mirror right now?
    vor 1 Tag 5 Stunden
  • Vielen Dank für Ihren
    vor 1 Tag 10 Stunden
  • Composer ist sehr ratsam
    vor 3 Tagen 9 Stunden
  • Vielen Dank für den
    vor 5 Tagen 19 Stunden
  • Die alten CMS Vergleiche von contentmanager.de
    vor 6 Tagen 7 Stunden
  • Gut gemacht
    vor 6 Tagen 8 Stunden
  • Layout Builder etc. z.B. für Landing Pages
    vor 6 Tagen 8 Stunden
  • Links
    vor 1 Woche 1 Tag
  • Moin,wow, sehr gutes
    vor 1 Woche 2 Tagen
  • Dass ist eine spannende
    vor 1 Woche 3 Tagen

Statistik

Beiträge im Forum: 250314
Registrierte User: 20559

Neue User:

  • Cruzorerm
  • Plandkeews
  • Tepkugem

» Alle User anzeigen

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

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