Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] GROUP BY
mrjozo
post
Post #1





Grupa: Zarejestrowani
Postów: 142
Pomógł: 3
Dołączył: 27.06.2007

Ostrzeżenie: (0%)
-----


Witam,

mam tabele:

img_id,gal_id

Chciałbym pobrać 10 najnowszysch zdjęć z różnych galerii

Robię tak:

  1. SELECT img_id FROM tabela GROUP BY gal_id ORDER BY img_id DESC


Zapytanie to zwraca mi ostatnie 10 zdjęc z galerii jednak są to pierwsze zdjęcia w galeriach

Tzn dla

1,1
2,1
3,1
5,2
6,3
7.2

Zwraca 1,1 zamiast 3,1 <- to zdjęcie było ostanie w tej galerii

Jak można to zrobić?
//pobrać 10 najnowszych zdjęć z unikalnych(każda inna) galerii

Ten post edytował mrjozo 17.11.2007, 21:09:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Garrappachc
post
Post #2





Grupa: Zarejestrowani
Postów: 76
Pomógł: 2
Dołączył: 15.11.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


No to jest dobre rozwiązanie.

  1. <?php
  2. $sql = "SELECT * FROM `tabela` ORDER BY `gal_id` DESC LIMIT 10";
  3. $wyk = mysql_query($sql);
  4. $i = 0;
  5. while ($temp = mysql_fetch_array($wyk))
  6. {
  7.   $obrazki[$i]=$temp['img_id'];
  8.   $galerie[$i]=$temp['gal_id'];
  9.   $i++;
  10. }
  11. ?>


Tylko nie obczajam jak zrobić tak, aby wybierała 10 ostatnio dodanych zdjęć z różnych galerii. Trzeba by dodać pole w tabeli, które by miało datę dodania ostatniego zdjęcia.
  1. ALTER `tabela` ADD `data`=datetime AFTER `gal_id`
(czy jakoś tak, zrób to w PHPMyAdmin)

i aktualizować datę przy każdym dodaniu zdjęcia
  1. <?php
  2. $datetime = date("Y-m-d H:i:s", time());
  3. $sql = "UPDATE `tabela` SET `data`='$datetime' WHERE `img_id`=$obraz_który_został_właśnie_dodany";
  4. ?>

i sortować.
Ta data bardzo uprości sprawę.

Ten post edytował Garrappachc 19.11.2007, 20:49:33
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 18:02