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

View aus einer MySQL-Tabelle

Eingetragen von Xeto (209)
am 22.03.2011 - 22:15 Uhr in
  • Views
  • Drupal 7.x

Hallo,

ich wollte mich nun mal etwas genauer mit Views und Views_accordion beschäftigen um eine Ansicht meiner Daten aus einer MySQL-Tabelle zu realisieren.

Beschreibung der Daten

  • Ein Datensatz besteht aus 4 Feldern von Nutzdaten
  • Die Datensätze werden anhand zusätzlicher Felder sortiert und gruppiert

Die Anzeige

  • Die Daten werden als Tabelle(n) ausgegeben
  • Jede Gruppe dient als Überschrift eines Tabellenabschnitts und zum ein-/ausklappen mittels accordion
  • Jeder Datensatz Nutzdaten werden in zwei Tabellenzeilen (1. Zeile -> 3 Felder, 2. Zeile -> letztes Feld) ausgegeben

Erstmal hoffe ich, dass ihr es soweit verstanden habt *g*
Und dann die Frage, ob das mit views (und views_accordion) realisierbar ist? Aktuell habe ich dazu einfach PHP-Code mit einer MySQL-Abfrage verwendet, jedoch würde ich hier gerne auf Views umstellen.
Ich bin mir auch noch nicht sicher, wie ich die Daten von Drupal aus ansprechen soll (als eigenständige MySQL-Tabelle?).

Grüße

Xeto

‹ (gelöst) Add Content Formular in View anzeigen? Alternativtext anzeigen lassen, wenn view ohne Inhalt ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Woher kommt den die

Eingetragen von Exterior (2903)
am 23.03.2011 - 01:45 Uhr

Woher kommt den die MySQL-Tabelle? Direkt aus Drupal oder hast du diese Tabelle selbst irgendwie eingefügt? Wenn letzteres der Fall ist, kannst du Views gleich wieder vergessen, außer du schreibst ein Modul, welches die Tabelle und die Felder für Views bekannt macht.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Wenn letzteres der

Eingetragen von Xeto (209)
am 23.03.2011 - 08:30 Uhr
Zitat:

Wenn letzteres der Fall ist, kannst du Views gleich wieder vergessen, außer du schreibst ein Modul, welches die Tabelle und die Felder für Views bekannt macht.

Ähm, ich wär ja mal froh Views besser zu verstehen und mehr als in einfachsten Beispielen nutzen zu können, da ist ein eigenes Modul in dem Zusammenhang vielleicht schon ein Schritt zu weit ;)

Aktuell sind die Daten in einer selbst erstellten und von Drupal unabhängigen Datenbank. ich habe mir die Daten in CSV gewandelt und dann in die Datenbank importiert, damit ich überhaupt mal halbwegs mit den Daten arbeiten kann. Von da aus habe ich diese dann mittels PHP in einer Node geladen und verarbeitet. Hat funktioniert, gefällt mir aber nicht...

Eine neue Überlegung wäre die Daten als eigenen content type in Drupal zu bringen mit den entsprechenden Feldern. Ich denke/ hoffe mal, dass dadurch die Performance der Seite nicht leidet. Wie ich die Daten aus MySQL-DB in Drupal bekomme, weiß ich noch nicht genau, aber ich schätze mal am einfachsten mittels einem kleinen Script, welches die Daten ausliest und dann Nodes des neuen content types generiert.

Abgesehen davon die Daten sauber in Drupal zu bekommen, wäre es praktisch aus diesen ein angepasstes PDF- oder Excel-Dokument zu generieren. Aktuell werden die Daten in der DB und in einem Excel-Dokument gepflegt. Damit wir diese Themen aber nicht mischen, mach ich dafür ein neues Thema auf, damit wir hier nicht vom Thema abkommen...
Aus Daten PDF- oder Excel-Dokument generieren

  • Anmelden oder Registrieren um Kommentare zu schreiben

Views ist im Grunde "nur" ein

Eingetragen von Exterior (2903)
am 23.03.2011 - 20:32 Uhr

Views ist im Grunde "nur" ein Werkzeug, um mittels SQL-Abfragen bestimmte Daten aus der Datenbank zu holen und daraus dann themebare Listen zu erstellen. Dies funktioniert aber eben nur mit Tabellen, die Views auch kennt, weil man sonst natürlich in Views nicht auf die Felder zugreifen kann.

PHP-Code in einem Node sollte prinzipiell die letzte Variante sein, da gibt es in aller Regel wesentlich bessere Möglichkeiten, um das sauber zu lösen.
Da wäre es z. B. um längen besser, so eine Ausgabe mit einem eigenen Modul zu machen (welches dann auch nicht viel mehr Code enthalten würde als dein Node).

Ich habe jetzt leider keine Ahnung, wie umfangreich deine Daten sind usw. Wenn du die Daten aber z. B. mittels Nodes und CCK-Feldern in Drupal einpflegst, hast du mit Views Zugriff darauf, das wäre eine einfache Lösung. Oder eben doch ein kleines Modul schreiben, welches sich um die Darstellung der Daten kümmert, komplett ohne auf Views zurückzugreifen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mal so eine Idee. Wenn er die

Eingetragen von Hyp1 (1463)
am 23.03.2011 - 20:47 Uhr

Mal so eine Idee.

Wenn er die Daten als Nodes hat,
kann er dies mittels node_save() in Drupal als node speichern.
Dann kennt Drupal die Daten und er kann die alte Tablle löschen.

Dann könnte er eine view erstellen "viewdata"
und etwa so wieder ausgeben:

print views_embed_view('viewdata', 'default', $node);

Sollte funktionieren.

LG

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich würde in diesem

Eingetragen von sepp68 (444)
am 23.03.2011 - 20:58 Uhr

ich würde in diesem Fall
http://drupal.org/project/node_import
empfehlen.

Inhaltstyp mit entsprechenden Feldern anlegen, csv (utf-8 kodiert!) importieren
und schon kannst du mit views alles machen

  • Anmelden oder Registrieren um Kommentare zu schreiben

Würde sicherlich beides

Eingetragen von Exterior (2903)
am 23.03.2011 - 21:03 Uhr

Würde sicherlich beides funktionieren, je nach Aufbau der Daten wäre die eine oder andere Variante besser.

Wenn es mit node_import gehen würde, würde ich auch eher das empfehlen, dann funktioniert das komplett ohne eigenes Modul.

  • Anmelden oder Registrieren um Kommentare zu schreiben

node_import gibt es bisher

Eingetragen von Xeto (209)
am 23.03.2011 - 21:16 Uhr

node_import gibt es bisher nur für Drupal 6 glaube ich ;) Aber es sollte sich auch ein kurzes Script schreiben lassen, welches Nodes von einem Typen erzeugt und die Datensätze dort in Felder schreibt...
Dann hätte ich aber pro Datensatz eine Node. Wäre jetzt nicht schlimm, sondern einfach ein größerer Umfang als ich bisher hatte ;)

Wäre es dann in dieser Form möglich die Nodes (enthält meine 4 Felder Nutzdaten) als View anzuzeigen, wobei diese gruppiert sein sollen und jede Gruppe mittels Views_accordion getoggelt werden können muss.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Er hat die Daten doch schon

Eingetragen von Hyp1 (1463)
am 23.03.2011 - 22:06 Uhr

Er hat die Daten doch schon ein einem Node geladen.
Da braucht er doch kein Modul für den Import in die Node
Tabelle wenn er das einfach mit


node_save($node)

machen kann.

Anstatt node import modeul zu nehmen könnte er
auch die CSV Daten so aufbereiten dass sie direkt in die
Node Table passen.
allerdings finde ich das mit dem save einfacher.

LG

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Er hat die Daten doch

Eingetragen von Exterior (2903)
am 24.03.2011 - 01:07 Uhr
Zitat:

Er hat die Daten doch schon ein einem Node geladen.

Keine Ahnung, wo du das liest, aber bisher scheint der Stand zu sein, dass die Daten in einer separaten MySQL-Tabelle vorliegen. Es existieren also noch keine Nodes, welche diese Daten enthalten. Also benötigt er in irgendeiner Form einen Import in die Node-Tabelle, schließlich müsste für jeden Datensatz ein extra Node angelegt werden, damit Views darauf zugreifen kann. Auf welchem Wege am Ende die Daten in Nodes kommen, ist ja im Grunde egal, aber für die Einfachheit wäre es auf jeden Fall ratsam, die Daten in separaten Nodes anzulegen.

Zitat:

Wäre es dann in dieser Form möglich die Nodes (enthält meine 4 Felder Nutzdaten) als View anzuzeigen, wobei diese gruppiert sein sollen und jede Gruppe mittels Views_accordion getoggelt werden können muss.

Views kann dann auf jeden Fall auf die Felder der Nodes und somit auf die einzelnen Daten zugreifen. Wenn du für jeden Datensatz einen Node anlegst, wäre das also kein Thema. Ob und wie genau dann das mit der Gruppierung und Views_Accordion funktioniert, kann ich dir nicht sagen, habe sowas noch nie probiert.

  • Anmelden oder Registrieren um Kommentare zu schreiben

@Exterior: Ja, du hast es

Eingetragen von Xeto (209)
am 24.03.2011 - 08:12 Uhr

@Exterior:
Ja, du hast es richtig verstanden ;) Daten sind in einer MySQL-Tabelle und keine Drupal-Nodes! Ich habe aber beim Googeln mal was gefunden, das man recht einfach eine Node generieren könnte. Wenn das geht kann ich ja ein Script schreiben, welches die Datensätze nacheinander einliest und als Node wieder abspeichert. Das werde ich einfach mal bei Gelegenheit testen.

In meiner MySQL-Tabelle habe ich noch eine Spalte für die Sortierung und eine für die Gruppierung. Ich denke selbiges muss ich dann auch bei der Node berücksichtigen. Noch schöner wäre natürlich diese nicht anhand einer Nummer zu sortieren, sondern (zusätzlich) per Drag&Drop innerhalb jeder Gruppe und die Reihenfolge der Gruppen selbst.

Wenn wir jetzt mal das accordion außer acht lassen: Kann Views pro Gruppe eine HTML-Tabelle generieren und diese untereinander anzeigen? Dabei soll die jeweilige Gruppe als Überschrift darüberstehen (die Zeile der Überschrift soll dann ja später das Toogle-Event auslösen). Wenn der generierte Quellcode passt, kann ich das auch ohne views_accordion selbst lösen (wie aktuell ja auch direkt mit jquery).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Leider habe ich keine Ahnung,

Eingetragen von Exterior (2903)
am 24.03.2011 - 15:36 Uhr

Leider habe ich keine Ahnung, was Views unter Drupal 7 genau kann.

Aber teste es doch einfach mal aus. Lege ein paar Test-Nodes an, welche solche Daten enthalten (du musst ja nicht deine vorhandenen Daten in Nodes "umwandeln", sondern kannst erstmal fiktive Daten verwenden) und versuche, damit ein gewünschtes Views-Ergebnis zu erstellen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe halt auch schon

Eingetragen von Xeto (209)
am 24.03.2011 - 15:41 Uhr

Ich habe halt auch schon keinen Vergleich zu Drupal 6. Da habe ich eigentlich noch gar nicht mit Views gearbeitet.
Somit wäre für mich bereits nützlich zu wissen, ob das unter Drupal 6 in der Form möglich ist.

Testen werde ich das sowieso mal mit einigen Dummy-Einträgen ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

So, ich habe nun mal mit

Eingetragen von Xeto (209)
am 31.03.2011 - 21:09 Uhr

So, ich habe nun mal mit einem Inhaltstyp, Views und Views_Accordion ein wenig gespielt und eine Ansicht erhalten, die - wenn auch noch nicht passend gestylt - rein inhaltlich meinen Vorstellungen entspricht. Der Inhaltstyp enthält die notwendigen Felder und wird anhand eines Kategorie-Feldes gruppiert. Die Sortierung erfolgt anhand einer eindeutigen Nummer (ebenfalls ein Feld). Auch die Darstellung als Accordion klappt dank dem Module Views_accordion mit wenigen Klicks :)

Die angezeigten Felder sind innerhalb von DIV-Elementen und mit passenden Klassen versehen, was stylen mittels CSS als Tabelle (2 Zeilen je Datensatz) möglich machen sollte.

Noch nicht ganz klar ist mir, wie ich die Kategorien realisiere, welche nicht automatisch sondern händisch sortiert werden sollen. Aber da muss ich mal testen, ob ich mittels Taxonomie und Begriffen als Kategorien (diese sollten ja sortierbar sein und in dieser Reihenfolge in der View angezeigt werden?) hinbekomme... Das werde ich aber heute nicht mehr testen ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
Weiter

Neue Kommentare

  • Rollen
    vor 3 Tagen 16 Stunden
  • Inzwischen sind wir bei
    vor 2 Wochen 9 Stunden
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Wochen 1 Tag
  • melde mich mal wieder, da ich
    vor 9 Wochen 5 Tagen
  • Hey danke
    vor 9 Wochen 6 Tagen
  • Update: jetzt gibt's ein
    vor 9 Wochen 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 10 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 11 Wochen 1 Tag
  • In der entsprechenden View
    vor 11 Wochen 1 Tag

Statistik

Beiträge im Forum: 250237
Registrierte User: 20466

Neue User:

  • StevenEness
  • ocvk2810
  • marouane.blel

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 46 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