Wo kann ich SQL Abfragen eingeben?
am 02.12.2009 - 00:20 Uhr in
Hallo zusammen,
ich bin leider noch absoluter Drupal-Neuling.
Ich möchte gerne auf einer Seite (oder in einem Block) eine Abfrage auflisten.
Bspw. Zeige mir alle user, die gelbe Hosen tragen.
Leider reichen mir die Filterargumente, die mir "views" bieten nicht aus. Von daher würde ich gerne eigene SQL-Abfragen per manuellem Code erstellen.
Nur wo gebe ich das ein? Ich habe schon herausgefunden, dass ich bspw. ein Modul erstellen kann, welches einen Block mit dem Inhalt erzeugt. Aber mus sich dann für jede Seite einen Block erstellen?
Am coolsten fände ich ja eine Abfrage, die mir auch noch die Anzahl der user je Kategorie in einer Übersicht auslistet. Die Anzahl soll dann hinter der Kategorie in Klammern stehen.
Ungefähr so:
User mit folgenden Eigenschaften:
groß (50) klein (20) schön (31) hässlich (25)wenn man dann auf die Eigenschaft klickt sieht man dann z.B.
User mit der Eigenschaft klein (20)
frans
gustav
bernd
...
...Ich denke mal, sowas macht am besten per Code. Die SQL-Befehle hierfür sind mir schon soweit klar.
Aber wo gebe ich den PHP/SQL Code ein, sodass er auf einer Seite/Block angezeigt wird?
Ich hoffe, ich konnte mein Problem rüberbringen.
Viele Grüße
tick313
- Anmelden oder Registrieren um Kommentare zu schreiben

Was genau passt dir denn da
am 02.12.2009 - 00:31 Uhr
Was genau passt dir denn da an Views nicht?!
Ich habe z.B: ein Feld, dass
am 02.12.2009 - 01:00 Uhr
Ich habe z.B: ein Feld, dass durch eine Auswahlliste mit Inhalt gefüllt ist. Es stehen also mehrere Werte in einem Feld, getrennt durch Kommata.
Jetzt kann ich bei views aber nicht den Inhalt so filtern, dass ich auf einzelne Werte zugreifen kann, sondern immer nur bezogen auf den gesamten Feldinhalt.
User können die Eigenschaft a,b oder c haben. Dabei können Sie auch mehrere Eigenschaften haben.
user Eigenschaft1 a,b
2 a,c
3 a,b,c
Jetzt möchte ich mit views z.B. alle User auflisten, die die Eigenschaft a haben. Wenn ich das aber als Filter auswähle funktioniert das nur, wenn ein User wirklich nur die Eigenschaft a hat, und nichts anderes.
Also
SELECT user FROM users
WHERE Eigenschaft LIKE 'a%'
Views bietet mir nur an:
SELECT user FROM users
WHERE Eigenschaft in ('a')
Außerdem weiß ich nicht, wie ich auch einen Zähler hinter die Ergebnisse mit views darstellen könnte.
Du kannst die "Abfrage
am 02.12.2009 - 07:48 Uhr
Du kannst die "Abfrage direkt in Deinen Node schreiben ( natürlich im PHP Modus )
z.B.: Alle Mitglieder
<?php print db_result(db_query('SELECT COUNT(uid) FROM {users} WHERE uid > 0 AND status = 1')); ?>ergibt dann einfach ne Zahl der Mitglieder auf Deiner Seite.
-----
Design Probleme einfach mit FF und FIREBUG lösen!
SQL
am 02.12.2009 - 08:26 Uhr
Moment.
Du benötigst kein eigenes SQL, um das zu machen.
Wie genau trägst Du die Eigenschaften denn in das Feld ein? Per Hand?
Oder ist jede Eigenschaft ein Term eines Vokabulars und das Feld ist ein Freetagging-Feld (so würde ich das Ganze aufziehen)?
In diesem Fall kannst Du mit Views sehr wohl nach einzelnen Terms filtern.
Und die Anzahl der Ergebnisse kannst Du entweder mit dem Modul Views calc oder mit ein wenig PHP-Code im entsprechenden Views-Template ermitteln.
<?phpprint $view->total_rows;
?>
hth,
Stefan
--
Sei nett zu Deinem Themer!
Hallo, vielen Dank schon mal
am 02.12.2009 - 12:49 Uhr
Hallo,
vielen Dank schon mal für Eure Antworten.
Ich benutze das Modul Profile Checkboxes (Replace list selection options with checkboxes) um die Werte in das Feld zu schreiben.
Du kannst die "Abfrage direkt in Deinen Node schreiben ( natürlich im PHP Modus )
Wie komme ich in diesen PHP-Modus? Das ist das, was ich noch nicht verstanden habe.
Views calc hört sich aber auch gut an. Dann habe ich nur noch das Problem mit der Filterung.
Aber unabhängig von diesem Problem interessiert mich aber die Funktionsweise, wie man notfalls per Hand etwas in einem node verändern kann.
Grüße
tick313
tick313 schrieb Hallo, Wie
am 02.12.2009 - 13:44 Uhr
Hallo,
Wie komme ich in diesen PHP-Modus? Das ist das, was ich noch nicht verstanden habe.
Wenn Du das Modul "PHP filter" in Deinem Module Bereich aktivierst, steht Dir PHP Code in den Nodes zur Verfügung!
Du solltest Dir vielleicht mal die Mühe machen, mal durchzulesen, was Deine verfügbaren Module unter admin/build/modules alles so drauf haben! Bei "PHP Filter" steht bei mir: "Ermöglicht die Ausführung von eingebettetem PHP-Code." ... nur so ne kleine Anregung :-)
-----
Design Probleme einfach mit FF und FIREBUG lösen!
Zitat: das Modul "PHP
am 02.12.2009 - 13:54 Uhr
das Modul "PHP filter"
Oh, Vielen Dank.
Gibt's eine Ecke, in die ich mich zum Schämen stellen kann :-)
tick313 schrieb Oh, Vielen
am 02.12.2009 - 14:33 Uhr
Oh, Vielen Dank.
Gibt's eine Ecke, in die ich mich zum Schämen stellen kann :-)
Ah Quatsch - Halb so wild! So hast Du jetzt am Anfang schonmal bemerken dürfen, daß das Lesen von Hinweisen bei Modulen, auf den Modulseiten, readme.txt und install.txt Dateien gerade bei DRUPAL einfach unverzichtbar ist!
Irgendwann flutscht dann auch ohne Nachlesen schon ne Menge :-)
Viel Spaß und Erfolg mit Drupal!
-----
Design Probleme einfach mit FF und FIREBUG lösen!