php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 14-08-2004, 10:01
php_rookie
 Junior Member
Links : Onlinestatus : php_rookie ist offline
Registriert seit: Dec 2003
Beiträge: 224
php_rookie ist zur Zeit noch ein unbeschriebenes Blatt
Standard blätterfunktion

hi!

bin gerade dabei eine kommentarfunktion für eine bildergallerie zu erstellen.

ich würde gerne eine blätterfunktion implementieren und nur jeweils 5 kommentare pro seite zulassen. die abfrage schränk ich mit limit 1 bis 5 testhalber ein. die ersten 5 ergebnisse werden so anstandslos zurückgegeben:
Code:
SELECT `date_time` , `nickname` , `email` , `location` , `comment`
FROM `gallery_comments`
WHERE `id_event` = '14' AND `id_image` = '58'
ORDER BY `id_comment` DESC
LIMIT 1 , 5;
mich würde jetzt aber noch die gesamtanzahl der kommentare interessieren. gezählt werden sollen die anzahl der zeilen in der tabelle, die unter id_image 58 stehen haben.

gibt es eine möglichkeit die gesamtzahl auch noch in das query zu packen, oder ist eine eigene abfrage nötig?

besten dank!
Mit Zitat antworten
  #2 (permalink)  
Alt 14-08-2004, 10:40
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: blätterfunktion

Zitat:
gibt es eine möglichkeit die gesamtzahl auch noch in das query zu packen, oder ist eine eigene abfrage nötig?
eigene.
__________________
Die Zeit hat ihre Kinder längst gefressen
Mit Zitat antworten
  #3 (permalink)  
Alt 14-08-2004, 11:50
php_rookie
 Junior Member
Links : Onlinestatus : php_rookie ist offline
Registriert seit: Dec 2003
Beiträge: 224
php_rookie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

verrätst mir auch welche, bitte? count ohne group by ist nicht möglich.
Mit Zitat antworten
  #4 (permalink)  
Alt 14-08-2004, 13:03
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von php_rookie
verrätst mir auch welche, bitte? count ohne group by ist nicht möglich.
dann benutz doch ein count mit group by ...

außerdem, wenn du blättern willst, sollte es dich nicht nur interessieren, wieviel einträge es sind ...
für gewöhnlich stellt man die anzahl der einträge fest, bevor man das limit anwendet ...
__________________
Die Zeit hat ihre Kinder längst gefressen
Mit Zitat antworten
  #5 (permalink)  
Alt 14-08-2004, 13:06
Quickborner
 Junior Member
Links : Onlinestatus : Quickborner ist offline
Registriert seit: May 2004
Beiträge: 62
Quickborner ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

falls du mySql ab 4.0.x benutzt, könnte evtl. folgendes helfen


Select {...}, SQL_CALC_FOUND_ROWS * from table where {...} ORDER LIMIT x,y

im Kombination mit found_rows() liefert mysql die anzahl der datensätze, die es ohne LIMIT zurückgegeben würde.


nice day
Quickborner
Mit Zitat antworten
  #6 (permalink)  
Alt 15-08-2004, 10:44
php_rookie
 Junior Member
Links : Onlinestatus : php_rookie ist offline
Registriert seit: Dec 2003
Beiträge: 224
php_rookie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von derHund
dann benutz doch ein count mit group by ...
?

wenn ich wüsste, wie ich count mit group by einfügen muss, würde ich nicht hier fragen?

Code:
SELECT `date_time` , `nickname` , `email` , `location` , `comment`
COUNT `id_event` AS `event_count`
FROM `gallery_comments`
WHERE `id_event` = '14' AND `id_image` = '58'
ORDER BY `id_comment` DESC
GROUP BY `id_event`
LIMIT 1 , 5;
ist nicht richtig.
Zitat:
außerdem, wenn du blättern willst, sollte es dich nicht nur interessieren, wieviel einträge es sind ...
es interessiert mich aber, wieviele beiträge es insgesamt sind, da ich eine navigation in der form

seite(n): 1 | 2 | 3 | 4 | 5

aufbauen möchte, und dazu brauch ich eben die gesamtanzahl der beiträge. die fett markierte zahl ist die kommentarseite die ich anzeigen lassen möchte.
Mit Zitat antworten
  #7 (permalink)  
Alt 15-08-2004, 10:46
php_rookie
 Junior Member
Links : Onlinestatus : php_rookie ist offline
Registriert seit: Dec 2003
Beiträge: 224
php_rookie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Quickborner
falls du mySql ab 4.0.x benutzt, könnte evtl. folgendes helfen


Select {...}, SQL_CALC_FOUND_ROWS * from table where {...} ORDER LIMIT x,y

im Kombination mit found_rows() liefert mysql die anzahl der datensätze, die es ohne LIMIT zurückgegeben würde.
danke für den hinweis. wenn ich es einfüge erhalte ich jedoch einen syntax error:
Code:
SELECT `date_time` , `nickname` , `email` , `location` , `comment`
SQL_CALC_FOUND_ROWS *
FROM `gallery_comments`
WHERE `id_event` = '14' AND `id_image` = '58'
ORDER BY `id_comment` DESC
LIMIT 1 , 5;
Mit Zitat antworten
  #8 (permalink)  
Alt 15-08-2004, 11:18
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
wenn ich es einfüge erhalte ich jedoch einen syntax error:
der da lautet?
__________________
Die Zeit hat ihre Kinder längst gefressen
Mit Zitat antworten
  #9 (permalink)  
Alt 15-08-2004, 11:43
php_rookie
 Junior Member
Links : Onlinestatus : php_rookie ist offline
Registriert seit: Dec 2003
Beiträge: 224
php_rookie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

der da lautet:
Zitat:
MySQL meldet:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SQL_CALC_FOUND_ROWS *
FROM `gallery_comments`
WHERE `id_ev
Mit Zitat antworten
  #10 (permalink)  
Alt 15-08-2004, 11:54
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
es interessiert mich aber, wieviele beiträge es insgesamt sind, da ich eine navigation in der form
ja, lies doch mal die beiträge ... ich sagte nur, daß es für gewöhlich vor dem limit zu bestimmen ist ...
Zitat:
ist nicht richtig.
ach nee, was meinste, was ich mit 'eigene' meinte?

schau dir mal den syntax vom Quickborner an, vergleiche ihn mit deinem ... stell den unterschied fest ...
__________________
Die Zeit hat ihre Kinder längst gefressen
Mit Zitat antworten
  #11 (permalink)  
Alt 15-08-2004, 18:33
php_rookie
 Junior Member
Links : Onlinestatus : php_rookie ist offline
Registriert seit: Dec 2003
Beiträge: 224
php_rookie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

deinen ausführungen nach ist es nicht möglich. ich werde wohl mit zwei abfragen arbeiten müssen. trotzdem danke für dein bemühen.
Mit Zitat antworten
  #12 (permalink)  
Alt 15-08-2004, 23:36
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hast du mal ein komma probiert?
__________________
Die Zeit hat ihre Kinder längst gefressen
Mit Zitat antworten
  #13 (permalink)  
Alt 16-08-2004, 14:44
php_rookie
 Junior Member
Links : Onlinestatus : php_rookie ist offline
Registriert seit: Dec 2003
Beiträge: 224
php_rookie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von derHund
hast du mal ein komma probiert?
yep. ändert nichts an der tatsache, dass es einen fehler produziert.
Mit Zitat antworten
  #14 (permalink)  
Alt 18-08-2004, 10:35
php_rookie
 Junior Member
Links : Onlinestatus : php_rookie ist offline
Registriert seit: Dec 2003
Beiträge: 224
php_rookie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Quickborner
Select {...}, SQL_CALC_FOUND_ROWS * from table where {...} ORDER LIMIT x,y

im Kombination mit found_rows() liefert mysql die anzahl der datensätze, die es ohne LIMIT zurückgegeben würde.
nach einigen versuchen, nach dem motto "das muss doch gehen" hat sich herausgestellt, dass unter MySQL 4.0.20 nur folgende syntax funktioniert:
Zitat:
Select SQL_CALC_FOUND_ROWS *, {...} from table where {...} ORDER LIMIT x,y
"SQL_CALC_FOUND_ROWS *" _muss_ als erstes stehen, ansonsten liefert mysql obige fehlermeldung retour.

wie found_rows() zu benutzen ist, hab ich noch nicht herausgefunden.
Mit Zitat antworten
  #15 (permalink)  
Alt 07-03-2005, 16:23
motörhead
 Newbie
Links : Onlinestatus : motörhead ist offline
Registriert seit: Mar 2005
Beiträge: 1
motörhead ist zur Zeit noch ein unbeschriebenes Blatt
Standard found_rows()

liefert bei mir immer 18, egal wie viele datensätze wirklich vorhanden sind...
tolle wurst
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
Upload Bootstrap 4

Mit dem PHP - Uploadscript kann man schnell und einfach Bilder und Dateien auf den Webserver hochladen.

04.07.2021 arne-home | Kategorie: PHP/ File
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:51 Uhr.