Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

total view count für user auf der profil-seite

Eingetragen von derBen (432)
am 28.11.2007 - 17:22 Uhr in
  • Allgemeines zu Drupal
  • Drupal 5.x

ich möchte gerne die gesamtanzahl der ansichten für alle beiträge, die ein user erstellt hat in seinem profil (.tpl.php datei)darstellen. leider habe ich keinen ansatz gefunden (mysql noob) - soll aber ganz einfach gehen.

Output sollte etwa sein:

"Deine Beiträge wurden insgesamt 232435 mal angeschaut."

ich bin mir auch nicht sicher ob so eine anfrage den server evtl arg belasten würde.

hat vielleicht jemand einen ansatz, eine solche query zu schreiben?

‹ Dopelte Benutzeranmeldung erforderlich Probleme beim update auf 5.5 ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

versuchs mal damit:

Eingetragen von derjochenmeyer@... (591)
am 28.11.2007 - 23:07 Uhr

versuchs mal damit:

Bei sowas hilft api.drupal.org oft weiter. In dam Fall: http://api.drupal.org/api/function/statistics_get/5

<?php
// stats for user 1
$user_uid = 1;

// Select all Node IDs created by user with uid = $user_uid
$nodes = db_query("SELECT nid FROM {node} WHERE uid = %d", $user_uid);

// for couting the nodes
$nodecount = 0;

while(
$node = db_fetch_object($nodes)) {
 
// get total nodeviews for every node
 
$nodeviews = statistics_get($node->nid);
 
 
// sum all nodeviews
 
$total_nodeviews += $nodeviews['totalcount'];

 
// count all nodes
 
$nodecount++;
}

print
"Deine $nodecount Beiträge wurden insgesamt $total_nodeviews aufgerufen.";
?>

Ich glaube nicht, dass das ein große Belastung für den Server ist. Aber vielleicht hat ja jemand ne andere Meinung dazu?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke, 1337 mal danke!

Eingetragen von derBen (432)
am 29.11.2007 - 00:38 Uhr

<?php
// stats for user
$user_uid = $user->uid;

// Select all Node IDs created by user with uid = $user_uid
$nodes = db_query("SELECT nid FROM {node} WHERE uid = %d", $user_uid);

// for couting the nodes
$nodecount = 0;

while(
$node = db_fetch_object($nodes)) {
 
// get total nodeviews for every node
 
$nodeviews = statistics_get($node->nid);

 
// sum all nodeviews
 
$total_nodeviews += $nodeviews['totalcount'];

 
// count all nodes
 
$nodecount++;
}
print
$user->name;
print
" hat $nodecount Beiträge geschrieben. Diese wurden insgesamt $total_nodeviews mal aufgerufen.";
?>

wie butter, super!

--

volunity

  • Anmelden oder Registrieren um Kommentare zu schreiben

effektiver PHP Code, wie man ihn schreiben sollte

Eingetragen von quiptime (4972)
am 29.11.2007 - 01:13 Uhr
Zitat:

print " hat $nodecount Beiträge geschrieben. Diese wurden insgesamt $total_nodeviews mal aufgerufen.";

Das sind die typischen Anfaenger mit PHP Code.

Noch nie was von langsamen und schnellen PHP Code gehoert?

Das waere schnell:

<?php
print ' hat '.$nodecount.' Beiträge geschrieben. Diese wurden insgesamt '.$total_nodeviews.' mal aufgerufen.';
?>

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

quiptime, hast recht,

Eingetragen von derjochenmeyer@... (591)
am 29.11.2007 - 08:26 Uhr

quiptime, hast recht, *schäm*

hab das der Faulheit und Übersichtlichkeit halber so hingetippt. Aber ehrlich gesagt, in dem Fall macht es auch nicht viel aus. Es ist nur ein kurzer Satz. Der Interpreter muss aber den string durchsuchen. Schneller ists, ihm die Variablen eplizit zu liefern.

Sag mal quiptime, ist das von der Art der Anführungszeichen abhängig?

Wenn ich "einen sehr langen Satz" mit doppelten Anführungszeichen schreibe. Woher weis der Interpreter ob er jetzt Variablen suchen soll oder nicht?

  • Anmelden oder Registrieren um Kommentare zu schreiben

keine Faulheit, sondern nur dumme Angewohnheit

Eingetragen von quiptime (4972)
am 29.11.2007 - 09:45 Uhr
Zitat:

Es ist nur ein kurzer Satz.

In dem Fall ja. Aber wenn eine PHP Datei aus tausenden Zeilen besteht. Wie sieht es dann aus. Da rechnen sich solche "nur kurzen Saetze" ganz schoen hoch.

Zitat:

Sag mal quiptime, ist das von der Art der Anführungszeichen abhängig?

Ja

Zitat:

Wenn ich "einen sehr langen Satz" mit doppelten Anführungszeichen schreibe. Woher weis der Interpreter ob er jetzt Variablen suchen soll oder nicht?

Er weiss es durch die doppelten Anfuehrungszeichen. Die bedeuten fuer den Interpreter, gucke nach ob es im String Variablen gibt. Er muss also in Fall ein mal mehr parsen. Und wenn es keine Variablen im String gibt ist es sinnloses parsen.
Wenn ich nun Strings ohne Variablen immer in einfache Anfuehrungsstrichen packe gibt es kein sinnloses parsen. Bei hunderten oder tausenden nicht geparster Strings ergibt das schon einen Unterschied.

Mit einfachen Anfuehrungszeichen gibt er den String ungefragt an den Webserver zur Auslieferung.

Die Faulheit mit den Anfuehrungszeichen bringt auch andere Code-Stilblueten hervor. Dabei wird es dann eigentlich schon perverser Code. Beispiel:

<?php
print "<img scr=\"foobar.jpg\" alt=\"foobar\" />";
?>

In diesem Fall spart man mit den einfachen Anfuehrungszeichen sogar:
<?php
print '<img scr="foobar.jpg" alt="foobar" />';
?>

Bei PHP Variablen ist es das Gleiche. Beispiel:

<?php
$foo
["bar"];
$foo["$bar"];
?>

Besser ist auch dabei:

<?php
$foo
['bar']
$foo[$bar];
?>

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für die Erklärung :)

Eingetragen von derjochenmeyer@... (591)
am 29.11.2007 - 10:55 Uhr

Danke für die Erklärung :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

wieder was gelernt, danke!

Eingetragen von derBen (432)
am 17.12.2007 - 14:05 Uhr

danke!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • gepatchte PHP Version 7.4 für Windows
  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
Weiter

Neue Kommentare

  • Muss ja nicht genau php 8.3 sein
    vor 4 Stunden 1 Minute
  • Guten morgen und Danke
    vor 10 Stunden 36 Minuten
  • Evtl. versuchen auf PHP 8 zu wechseln
    vor 16 Stunden 47 Minuten
  • Danke Schmittrich. Die Frage
    vor 2 Tagen 8 Stunden
  • Keine Antwort auf die Frage nach dem Woher
    vor 2 Tagen 11 Stunden
  • Danke ich werde mir die
    vor 6 Wochen 4 Stunden
  • Vielen Dank für Ihren
    vor 6 Wochen 2 Tagen
  • Composer ist sehr ratsam
    vor 6 Wochen 4 Tagen
  • Vielen Dank für den
    vor 7 Wochen 7 Stunden
  • Die alten CMS Vergleiche von contentmanager.de
    vor 7 Wochen 19 Stunden

Statistik

Beiträge im Forum: 250323
Registrierte User: 20569

Neue User:

  • AnthonyhoF
  • Philiphelve
  • Robertspaft

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