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

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

Eingetragen von fala (7)
am 27.02.2010 - 16:20 Uhr in
  • CCK und 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 - 11: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 (84)
am 27.01.2012 - 15: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

  • Aggregator Modul lässt sich nicht konfigurieren
  • Views Accordion - Header Elemente nebeneinander
  • Freiberuflicher Drupal Profi für Anpassungen (langfristige Kooperation)
  • Registrierung für vorgefertigte User??!!
  • Projekt Umsetzung Diskussion
  • Gelöst:Marinelli 3, Admin-Layer
  • Modul für Absatznummern / Randnummern
  • Upload - Optionen ausblenden
  • Wie SQL_BIG_SELECTS=1 setzen?
  • Absichern Von Drupal- und Serverinstallation
  • Danland: Standard-Startseite formatieren
  • Heartbeat und Facebook Style Status
Weiter

Neue Kommentare

  • Rechtschreibung
    vor 3 Minuten 8 Sekunden
  • Genau so denke ich auch
    vor 14 Minuten 7 Sekunden
  • Dank für deine Antwort. Es
    vor 1 Stunde 1 Minute
  • Danke! Da hätte ich aber auch
    vor 1 Stunde 30 Minuten
  • Frank, könntest du mir bitte
    vor 2 Stunden 43 Minuten
  • Du mußt die page.tpl.php
    vor 4 Stunden 2 Minuten
  • Dann mußt Du eben ein bißchen
    vor 4 Stunden 4 Minuten
  • Hallo und Danke für Eure
    vor 4 Stunden 5 Minuten
  • Ok... ich habe mir die
    vor 6 Stunden 1 Minute
  • Dafür ist das Modul "Overlay"
    vor 8 Stunden 27 Minuten

Statistik

Beiträge im Forum: 173974
Registrierte User: 15481

Neue User:

  • drupal4normi
  • Neoskop
  • habicht09

» Alle User anzeigen

User nach Punkten sortiert:
stBorchert5516
quiptime4713
Tobias Bähr3874
wla3807
md3777
bv3700
Thoor3678
Alexander Langer3282
dereine2635
Exterior2571
» User nach Punkten
Zur Zeit sind 6 User und 45 Gäste online.

Benutzer online

  • Lufdablom
  • Enno
  • Alexander Langer
  • StevenB
  • StevenB
  • Patrick Schanen

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 Drupal Podcast
  • 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