Anzahl Nodes eines Inhaltstyp / aktueller Node
am 19.03.2014 - 11:36 Uhr in
Hallo Drupalgemeinde,
ich verfolge dieses Forum schon seit einiger Zeit und habe dank Euch schon einges über Drupal gelernt. Jetzt bin ich aber an einem Punkt angelangt, wo ich Eure Hilfe benötige.
Ich habe mehrere Nodes von einem Inhaltstyp "news". Jetzt möchte ich am Ende meiner Darstellung gerne Ausgeben z.B. "Sie befinden sich im Beitrag *5* von *20*"
Also wie ich die Gesamtzahl der Nodes des selben Inhaltstyps ermittle, habe ich schon herausgefunden:
$results = db_select('node', 'n')
->fields('n', array('nid'))
->condition('n.type', 'news')
->condition('n.status', '1')
->countQuery()
->execute()
->fetchField();
Aber irgendwie bekomme ich den vorderen Wert nicht ermittelt - also im Beispiel die 5.
Quasi die Beitragsnummer.
Wo genau muss ich da in meiner SQL Abfrage eingreifen, um den gesuchten Wert zu ermitteln. Stehe da momentan total auf dem Schlauch.
Vielen Dank schon mal für Eure Hilfe
Gruß
Markus
- Anmelden oder Registrieren um Kommentare zu schreiben
Wo käme denn die *5* her?
am 21.03.2014 - 16:26 Uhr
Wo käme denn die *5* her? Incrementell, nach alphabetischer Reihenfolge, stehen die alle auf einer Seite, so dass man das per js ermitteln könnte?
einen view mit einer node pro
am 22.03.2014 - 06:22 Uhr
einen view mit einer node pro ergebnis seite erstellen.
C.A.W. Webdesign
caw schrieb einen view mit
am 24.03.2014 - 08:20 Uhr
einen view mit einer node pro ergebnis seite erstellen.
Hallo!
Genau das habe ich gemacht - aber wie bekomme ich jetzt den gesuchten Wert?
Die Gesamtzahl ist kein Problem, aber wie gesagt die Zahl X von z.B. 20 Einträgen...
du hast dann doch die
am 24.03.2014 - 08:30 Uhr
du hast dann doch die paginierung. 1 bis...
C.A.W. Webdesign
Und noch mal. Views ist eine
am 24.03.2014 - 08:38 Uhr
Und noch mal. Views ist eine Db Abfrage. Die Frage wie Du diese Abfrage formulierst hängt doch ganz stark davon ab was Du überhaupt sagen willst!
im view hats du auch die
am 24.03.2014 - 19:34 Uhr
im view hats du auch die ergbnisanzahl zur verfügung
C.A.W. Webdesign
Geht in MySQL nicht wirklich gut
am 26.03.2014 - 11:24 Uhr
Was Du hier suchst ist letztlich die "Row Number" ! Dies ist eine Funktion die es z.B. in Oracle gibt, eine sog. Pseudo Column, die halt die Position des Satzes in der Abfrage darstellt.
In MySQL gibt es sowas nicht wirklich. Ein Workaround ist die Nutzung einer "Variablen" in MySQL (suche nach "@ROWNUM in mysql"). Das funktioniert aber nur in nicht sortierten Abfragen, da die Numerierung schon vor der Erzeugung der Sortierung durchgeführt wird. Möglich ist ein weiterer Workaround, der dann mit einem Sub-Select arbeitet (siehe http://tuts4you.de/90-programmieren/sql/92-mysql-rownum-mit-sortierung). In wie weit man dies in das Drupal db_select hinein bekommt, müssten man mal probieren.
set @rownum=0;
select @rownum:=@rownum+1, nid from node limit 10,10;
Hier dann aber aufgepasst, wenn auch Range genutzt wird. Die hier erzeugte Position bezieht sich dann immer auf den ersten Datensatz.
herzlichst
Carsten
Warum so kompliziert? Zwar
am 26.03.2014 - 11:32 Uhr
Warum so kompliziert?
Zwar wird die Frage nach der Sortiermethode konstant nicht mit einer Antwort gewürdigt, was mich ehrlich gesagt an der Reife des Gedankens etwas zwifeln lässt, aber das kann in drupal über Entityfieldquery sortierbar nach Titelnahme, create, oder was auch immer gelöst werden. Das Ergebnis wird in einem array gespeichert, der dann via foreach ausgeesen wird.
In dieser foreach kann er dann ja einen Zähler setzen und das Zwischenergebnis der foreach, sobald Treffer, mit ausgeben.
Hallo zusammen! Sorry für die
am 26.03.2014 - 14:29 Uhr
Hallo zusammen!
Sorry für die späte Antwort, aber ich war mit "anderen Problemen" in letzter Zeit etwas abgelenkt!
Erstmal vielen Dank für Eure Tipps.
Ich werde mich in den nächsten Tagen mal mit den Tipps beschäftigen und versuchen mein Problem zu lösen.
Sortiert werden die ganzen Einträge nach einem Feld "Datum".
Gruß und danke nochmal, Markus