php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.12.2004, 21:55  
Gast
 
Beiträge: n/a
Standard MySQL Count Problem

Ich hab da mal ein Problem....
Und zwar folgendes:

Ich möchte gerne die htis der letzten Woche mir anzeigen lassen.
Aber das will noch nicht so ganz, wie ich das will:
Code:
list($woche)   = mysql_fetch_row(mysql_query("SELECT SUM(hits) AS summe1 FROM `counter` ORDER BY `id` DESC  LIMIT 0 , 7"));
^^Hier zählt er aber leider ALLE zusammen. Raus kommt leider die Gesamtanzahl meiner hits..

Gruß,
Pi11e
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.12.2004, 23:17  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

Zitat:
Raus kommt leider die Gesamtanzahl meiner hits.
ach ...

GROUP BY
WEEK
YEAR
LIMIT
...

schau doch mal bei den sql-datumsfunktionen
__________________
derHund ist offline  
Alt 21.12.2004, 23:26  
Gast
 
Beiträge: n/a
Standard

es geht mir ja darum, dass er NUR die letzten 7 Einträge addieren soll.

von mir aus auch nur 3 oder 4...

Beispiel:

id | hits
---------
1 | 23
2 | 11
3 | 3
4 | 1

Jetzt sag mir mal, wie das so gehen soll?
Ich möchte, dass er die letzten 2 Datensätze addieren soll.
Also soll in dem Beispiel hier 15 rauskommen.
Wenn ich den Befehl nehme, den ich oben gepostet habe, kommt aber 38 raus.. ( er addiert alle)
 
Alt 22.12.2004, 02:29  
Gast
 
Beiträge: n/a
Standard Re: MySQL Count Problem

Zitat:
Zitat von Pi11e
Ich möchte gerne die htis der letzten Woche mir anzeigen lassen. Aber das will noch nicht so ganz, wie ich das will:
Code:
list($woche)   = mysql_fetch_row(mysql_query("SELECT SUM(hits) AS summe1 FROM `counter` ORDER BY `id` DESC  LIMIT 0 , 7"));
Ich sehe in Deinem SQL String nix, was "die letzte Woche" betreffen könnte. Haste das vergessen? Oder haste vergessen, dort nachzulesen?
http://dev.mysql.com/doc/mysql/de/Da...functions.html
 
Alt 22.12.2004, 11:22  
Gast
 
Beiträge: n/a
Standard

Mir gehts ja nicht ums Datum....
Das war ja nur ein Beispiel...

Ich könnte es ja, bloß ein wenig komplizierter.
Neues Beispiel:
Ich möchte wissen, wie viele Autos ich in den letzten 3 Tagen verkauft habe, wobei für jeden Tag eine Zeile existiert.
Ich könnte es so machen:
für gestern : Abfrage der Tabelle mit LIMIT 1, 1
für vorgestern : Abfrage der Tabelle mit LIMIT 2, 1
für vorvorgestern: Abfrage der Tabelle mit LIMIT 3, 1

und dann
$in_den_3_tagen = $gestern + $vorgestern + $vorvorgestern;



---------
Aber das geht doch auch bestimmt einfacher in einer Abfrage....
ich weiß nur nicht wie....
 
Alt 22.12.2004, 11:46  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Dein Limit und Order by bringt so genausoviel wie ein Furz. Ne weniger, der Furzt riecht wenigstens noch streng.

Also: Wenn du SUM machst ohne weiteres, nimmt er immer die ganze Tabelle. Dein order by oder limit bezieht sich dann nur noch auf eine Ergebniszeile, nämlich die Summe. DB/2 macht bei diesem sogar einen SQL- Fehler. Warum MySQL das schluckt, weiss ich nicht. egal.

Hier die Lösung:
Code:
SELECT id, SUM(hits) AS AnzahlMeinerHits FROM counter GROUP BY id ORDER BY id DESC LIMIT 0,7
Wichtig ist das Group by, denn damit sagst du dem MySQL erst, dass du alle Datensätze zusammenfassen willst, die mit der gleichen id versehen sind. SUM addiert dann nur noch die Datensätze zusammen, die innerhalb einer Gruppe sind, die also die gleiche id haben.

Alles klar?
Falls im übrigen das ganze zu einem Fehler führt: Es kann sein dass die Reihenfolge mit dem GROUP BY, ORDER BY etc. nicht passt. Dann einfach mal austauschen.
mepeisen ist offline  
Alt 22.12.2004, 13:54  
Gast
 
Beiträge: n/a
Standard Idee:

Wenn du dich nur an der letzten (größten) id orientieren kannst,
versuchs mal so:
Code:
"
SELECT
   SUM(hits) AS summe,
   id > (MAX(id) -3) AS gruppe               /* für die letzten 3 id */
FROM
   tabelle
GROUP BY
   gruppe
HAVING gruppe = 1
";
- ohne Gewähr -
_____________
mfG -dilemma-
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL Problem fkrauthan PHP-Fortgeschrittene 5 25.01.2008 18:18
mysql problem mit LIKE und AND kazuya Datenbanken 10 29.10.2007 21:36
MySQL kodierungs problem Mutatos Datenbanken 0 12.05.2006 20:02
MySQL Problem mit INSERT-Queries Arno Nühm Datenbanken 10 07.04.2006 16:46
Serverumzug - Problem mit MySQL Daten [GE]ReeN Datenbanken 6 28.03.2006 17:02
Mysql / Array Problem marcels PHP Tipps 2006 10 23.03.2006 18:30
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
[Erledigt] MYSQL Problem Datenbanken 4 09.02.2006 15:14
[Erledigt] Problem mit Sonderzeichen PHP -> MySQL -> HTML PHP Tipps 2007 18 07.12.2005 15:23
[Erledigt] Problem beim verbindungsaufbau zum Mysql Server Datenbanken 9 27.10.2005 11:27
MySQL Problem b++ PHP Tipps 2005-2 3 20.09.2005 17:53
Problem mit IIS6 und PHPMyAdmin PHP Tipps 2005-2 4 18.07.2005 21:58
[Erledigt] mysql installations problem Datenbanken 4 16.02.2005 18:46
mit mysql und php eine datenbank erstellen? Großes Problem PHP Tipps 2004-2 1 16.12.2004 14:53
[Erledigt] MYSQL Count problem Datenbanken 1 02.08.2004 19:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql counter, count mysql, mysql count addidieren, mysql count summieren, mysql count sum, mysql summe wo selbe id, mysql summe mit gleiche id, mysql größte id, php mysql limit nur bei bestimmten wert zählen, php sql count limit, gesamtanzahl hits mysql, mysql id addieren, mysql addieren wenn gleiche id, mysql count problem, bei gleicher id addieren mysql, sum gleiche id sql, mysql count(*) addieren, count hit in mysql, hits mysql zählen monat, mysql count php gleiche id nur einmal

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.