Error bij GROUP BY

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert Deiman

Robert Deiman

25/01/2007 16:19:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
mysql_query("
                        SELECT
                            a.id,
                            p.picture,
                            a.dir,
                            p.albumid
                        FROM
                           picalbum AS a,
                           pictures AS p
                        WHERE
                           p.albumid = a.id
                        ORDER BY
                           p.adddate
                        GROUP BY
                           p.albumid
                        LIMIT
                            0,6
                            "
);
?>


Waarom gaat dit niet goed en geeft die:
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 'GROUP BY p.albumid'
 
PHP hulp

PHP hulp

19/11/2024 21:28:48
 
Frank -

Frank -

25/01/2007 16:34:00
Quote Anchor link
Naar mijn bescheiden mening slaat de hele query nergens op...

Je maakt een groep aan, p.albumid en je wilt van 1 record in deze groep het id, de picture en de dir opvragen? De dir (directory?) kan ik me nog iets bij voorstellen, alle foto's zullen ongetwijfeld in dezelfde directory staan en dus hebben alle records in deze group deze eigenschap, maar de rest lijkt mij onmogelijk. MySQL verzint bij ongeldige GROUP BY-queries zelf wel een resultaat, maar dat wil je echt niet. Je kunt de meest vreemde resultaten krijgen.

Overigens zit jouw probleem volgens mij in de volgorde van de statements, ORDER BY hoort bij mijn weten ergens achteraan te staan.
 
Robert Deiman

Robert Deiman

25/01/2007 16:49:00
Quote Anchor link
Frank schreef op 25.01.2007 16:34:
Naar mijn bescheiden mening slaat de hele query nergens op...

Je maakt een groep aan, p.albumid en je wilt van 1 record in deze groep het id, de picture en de dir opvragen? De dir (directory?) kan ik me nog iets bij voorstellen, alle foto's zullen ongetwijfeld in dezelfde directory staan en dus hebben alle records in deze group deze eigenschap, maar de rest lijkt mij onmogelijk. MySQL verzint bij ongeldige GROUP BY-queries zelf wel een resultaat, maar dat wil je echt niet. Je kunt de meest vreemde resultaten krijgen.

Overigens zit jouw probleem volgens mij in de volgorde van de statements, ORDER BY hoort bij mijn weten ergens achteraan te staan.


Die volgorde veranderen had ik al geprobeerd, zonder resultaat, maar ik zal de bedoeling even uitleggen.

Ik heb een tabel met foto's die aan een bepaald album zijn gekoppeld. Ik wil van deze albums de meest recente foto hebben, dus eigenlijk de 6 albums waarin het laatst een foto is toegevoegd, met de bijbehorende foto (ik laat ze al wel verkleinen via een script).

Hopelijk is dat wel duidelijk.

Edit:

Dus inderdaad maak ik een groep aan waaruit ik 1 record weer wil geven, die met de nieuwste datum en tijd.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Frank -

Frank -

25/01/2007 16:54:00
Quote Anchor link
Helemaal duidelijk! Dit kan dus niet met een GROUP BY.

Gebruik 2 queries.
 
Robert Deiman

Robert Deiman

25/01/2007 16:56:00
Quote Anchor link
Frank schreef op 25.01.2007 16:54:
Helemaal duidelijk! Dit kan dus niet met een GROUP BY.

Gebruik 2 queries.

Hmm Jammer dat dit niet kan in in query. Maar dan ga ik wel met 2 query's werken.

Edit:

Ik bedenk me net dat het prima moet kunnen, ik kan toch een distinct gebruiken, op de kolom Albumid in de afbeeldingen tabel, en daarbij dan de hoogste datum gebruiken. Ik ga nog even prutsen.
Toch bedankt voor het meedenken.


Edit:

En nog weer 1, ik denk er niet eens bij na dat ik ook de map voor die foto nodig heb om hem weer te geven :S
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Joren de Wit

Joren de Wit

25/01/2007 18:49:00
Quote Anchor link
Is het niet een idee om in dit geval in de albums tabel ook een kolom 'modified' op te nemen waarin je het tijdstip van laatste wijziging opslaat? Dan kun je daarop sorteren.
 
Klaasjan Boven

Klaasjan Boven

25/01/2007 18:52:00
Quote Anchor link
Datum_begin en Datum_einde bij de fotos opnemen.
Je pakt dan degene met een lege einddatum.
Bij een nieuwe foto plaats je een einddatum in het id wat voor het plaatsen de hoogste is.

Let op dit moet wel met rollback mogelijkheid anders mogelijk corrupte data
 
Robert Deiman

Robert Deiman

25/01/2007 18:55:00
Quote Anchor link
NEej, dat wil niet Klaasjan, of ik moet 2 keer een datum opslaan in de kolom dvoor de datum. De datum is wel van belang voor het footoalbum. Ik heb hetal opgelost met 2 query's.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.