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

[gelöst] Feld-Werte berechnen und mit View anzeigen

Eingetragen von fala (7)
am 27.02.2010 - 17:20 Uhr in
  • Views
  • Drupal 6.x

Hallo Leute,
ich bin leider kein php-Programmierer und scheitere deshalb genau an dieser Stelle. Zunächst, was ich überhaupt will:

  • ich will ein Block (mit View) erstellen der ein "Endergebnis" anzeigt.
  • Endergebnis ist die Summe aller Ereigniswerte, die in den Nodes des Typs "Ereignis" stehen
    endergebnis = ereigniswert1 + ereigniswert2 + ...

Im meinem (neuen) Inhaltstyp "Ereignisse" (schauen genauso aus wie die Standardartikel, bis auf einn zusätzliches Feld namens "Ereigniswert", die mit einer Ganzzahl gefüllt werden, z.b. Ereigniswert=20

Ein Beispiel nochmal, dass es nicht verwirrt:

node/3 ist ein Ereigniss mit dem Ereigniswert = 20
node/4 ist ein Ereigniss mit dem Ereigniswert = -30

Jetzt sollte auf der Homepage ein Block zu sehen sein, der nur "Gesamtergebnis = xx" enthält (in dem oben genannten Beispiel als Gesamtergebnis = -10)

Was ich tat:
Ich verwende das Modul "CCK Computed Field" um eine berechnete Variable zu erstellen: "Endergebnis"
(geholfen hat mir diese kurze Anleitung zunächst: http://www.drupalcenter.de/handbuch/12418 Werte eines Node mit Werten von einem anderen Node berechnen):

Zitat:

Mit Computed Fields lassen sich auch Zahlenwerte verschiedener Nodes miteinander berechnen. Z. B. gibt es einen Nodetyp "loehne" in dem die Stundenlöhne verschiedener Mitarbeiter wie Lehrling, Geselle und Meister jeweils als Felder "lohn_lehrling" lohn_geselle" und "lohn_meister" gespeichert sind.

Jetzt kann man einen separaten Node machen, in dem die Lohnsummen berechnet werden. Dazu ist es zuerst mal erforderlich, ein "Node Reference"-Feld anzulegen, das auf den Node "loehne" verweist, guckst Du: http://www.drupalcenter.de/handbuch/5016

Als Node-Typen, zu denen verwiesen werden kann, wählt man natürlich "loehne" aus. Dann kann man mittels folgendem Code z. B. auf das Feld "lohn_meister" zugreifen und den Wert in die Berechnung einbeziehen:

$node_field[0]['value'] = db_result(db_query("SELECT field_lohn_meister_value FROM content_type_loehne WHERE nid=%d",$node->field_node_reference[0][nid])) * $node->field_stundenzahl[0]['value'] ;

Das Feld "$node->field_stundenzahl[0]['value']" ist natürlich in dem Node, in dem auch das Computed Field eingesetzt wird.
Das Feld $node->field_node_reference[0] steht für das Feld Node Reference, also Name halt entsprechend ändern.

Ich habe jetzt die im Beispiel genannten Typen usw. dementsprechend umbenannt, aber ich erhalte die Fehlermeldung:

user warning: Tabelle 'usr_webxxx_1.content_type_ereignisse' existiert nicht query: SELECT field_ereigniswert FROM content_type_ereignisse WHERE nid=33 in /var/www/webxxx/html/sites/all/modules/computed_field/computed_field.module(161) : eval()'d code on line 1.

Deshalb zwei Fragen:
1. Ob mir jemand erklären kann, was man für ein phpCode verwenden sollte, die mein obiges Beispiel realisiert bzw. erklärt, was das im Handbuch aufgeführte Code da eigentlich anstellt ;) ?
2. Ob es nicht eine viel einfache Methode gibt, Werte aus mehreren Nodes zusammenzurechnen und sie dann über ein Computed Field auslesen kann? (ich konnte per Modul View eine Liste mit allen Ereignisnodes und ihren Werten auslesen lassen. Jetzt fehlt quasi nur noch die Summe.)

Ich hoffe man kann mir weiterhelfen,

Fala

‹ Brauche gerade die Views [gelöst] D7: Views-Relation Custom Entity > Custom DB-Tabelle, doppelte Records wg. Sprachunterschiedung, autom. Filter Sprache ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hab eine Lösung mit

Eingetragen von fala (7)
am 01.03.2010 - 12:08 Uhr

Hab eine Lösung mit db_result(db_query("SELECT SUM(field_ereigniswert_value) FROM `dpxxx_content_type_ereignis`")); gefunden und es werden jetzt erfolgreich die werte addiert, aber...

dies geschieht nur, wenn ich ein weiteren inhaltstyp "ereignis" schreibe, weil die variable gesamtwert mit CCK für genau diesen inhaltstypen definiert wurde. problem:

während
node4 mit ereigniswert 30 und
node5 mit ereigniswert 20 erst mit
node6 addiert wird (also =50), aber node6 enthält dann aber wieder ein ereigniswert 10 z.b. bleibt der gesamtwert weiterhin (=50) erst
nach dem erstellen eines weiteren node wird die 10 dazu addiert usw.

wie kann ich ein block erstellen, der allein durch den aufruf des blocks (der nur den gesamtwert anzeigt) den obengenannten phpcode ausführt, und nicht erst nachdem ich einen weiteren ereignistypen erstelle?

edit: habs dann doch irgendwie hinbekommen

  • Anmelden oder Registrieren um Kommentare zu schreiben

Schön wäre zu wissen wie du

Eingetragen von fraweg (230)
am 27.01.2012 - 16:30 Uhr

Schön wäre zu wissen wie du es hinbekommen hast...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
Weiter

Neue Kommentare

  • Was für einen Server benutzt
    vor 1 Woche 1 Tag
  • Wenn die Subdomain auf
    vor 1 Woche 3 Tagen
  • ordnerstruktur
    vor 1 Woche 3 Tagen
  • Die Subdomain muß auf den
    vor 1 Woche 6 Tagen
  • Verwende doch das Tag dafür,
    vor 5 Wochen 1 Tag
  • Guckst du hier: step by step
    vor 5 Wochen 14 Stunden
  • Guckst du hier: step by step
    vor 5 Wochen 14 Stunden
  • Ich habe ja keine Angst vor
    vor 6 Wochen 3 Tagen
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 6 Wochen 5 Tagen
  • Vielen Dank erst einmal, aber
    vor 6 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250289
Registrierte User: 20517

Neue User:

  • Wolf Dab
  • Scottteday
  • MichaelPeeno

» 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 30 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