![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Moja tabela
Kod id - opis - nid
---------------- 1 - qaz - 1 2 - wsx - 2 3 - edc - 1 4 - rfv - 3 5 - tgb - 1 6 - yhn - 5 Chcem wyswietlic tak zeby nie powtarzaly sie rekordy o takim samym 'nid' i posortowac wg pola 'data' (typ datetime). W tym przypadku powinno wyswietlic 4 rekordy, od najnowszego do najstarszego. Jak skonstruowac takie zapytanie MySQL? -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
[sql:1:2e1581bf9f]SELECT DISTINCT nid, id, opis FROM tabela ORDER BY data[/sql:1:2e1581bf9f]
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Hmm ja mam cos takiego
[sql:1:f2e92eec8e]SELECT * FROM tabela GROUP BY nid ORDER BY data DESC [/sql:1:f2e92eec8e] dobrze bo chyba mi grupuje, tzn wyswietla tylko tyle wiersz ile jest roznych 'nid' - czyli dobrze, ale wyswietla pierwsze dodane, a nie jak chcialem wedlug najnowszych -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
...dobra! wszystko do nowa!
Moja baza z danymi [sql:1:1a76a3b02b]CREATE TABLE `mcz_post` ( `id` int(11) NOT NULL auto_increment, `temat` varchar(75) NOT NULL default '', `post` text NOT NULL, `data` datetime default NULL, `id_forum` int(11) NOT NULL default '0', `id_temat` int(11) NOT NULL default '0', `id_nick` int(11) NOT NULL default '0', `nick` varchar(10) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) ) TYPE=MyISAM INSERT INTO `mcz_post` VALUES (1, 'Pierwszy temat', 0x636f732074616d, '2003-11-25 20:40:43', 4, 1, 1, 'kicaj_'); INSERT INTO `mcz_post` VALUES (2, 'Drugi temat', 0x776574647366, '2003-11-25 20:41:59', 4, 2, 1, 'kicaj_'); INSERT INTO `mcz_post` VALUES (3, 'Trzeci temat', 0x737367666773646667, '2003-11-25 20:42:53', 4, 3, 1, 'kicaj_'); INSERT INTO `mcz_post` VALUES (4, 'Odpowiedz nr 1 do Pierwszy temat', '', '2003-11-25 20:44:17', 4, 1, 1, 'kicaj_'); INSERT INTO `mcz_post` VALUES (5, 'Odpowiedz nr 2 do Drugi Temat', '', '2003-11-25 20:50:45', 4, 2, 1, 'kicaj_'); INSERT INTO `mcz_post` VALUES (6, 'Odpowiedz nr 3 dla Trzeci temat', '', '2003-11-25 20:52:26', 4, 3, 1, 'kicaj_'); INSERT INTO `mcz_post` VALUES (7, 'Odpowiedz nr 4 do Pierwszy temat', 0x646a6b6c736a64666b, '2003-11-25 20:53:25', 4, 1, 1, 'kicaj_'); INSERT INTO `mcz_post` VALUES (8, 'Czwarty temat', 0x66736466, '2003-11-25 21:54:14', 4, 8, 1, 'kicaj_'); INSERT INTO `mcz_post` VALUES (9, 'Odpowiedz nr 5 do Trzeci temat', '', '2003-11-27 14:42:34', 4, 3, 1, 'kicaj_');[/sql:1:1a76a3b02b] Jesli 'id' jest rowne z 'id_temat' to jest to pierwszy post (temat), jezeli 'id' nie jest rowne z 'id_temat' to jest to post (odpowiedz) do tematu rownemu 'id_temat' ![]() I chcem miec taki efekt: Kod 2003-11-27 14:42:34 | Odpowiedz nr 5 do Trzeci temat
2003-11-25 21:54:14 | Czwarty temat 2003-11-25 20:53:25 | Odpowiedz nr 4 do Pierwszy temat 2003-11-25 20:52:26 | Odpowiedz nr 3 dla Trzeci temat Jasniej nie potrafie, przyklad jest na tym forum! Lista tematow najswiezszy u gory, zboku data ostatniej odpowiedzi! -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
hehe to moze inaczej?
Mam tematy i odpowiedzi trzymane w jednej tabeli, tematy odrozniaja sie tym ze w kolumnie 'rodzaj' ma wartos '1' a odpowiedzi '0'. Jak je posortowac wg daty (pole datetime), tak zeby obok tematu widniala data ostatniej odpowiedzi (i najnowszy na gorze)! ![]() -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
[sql:1:b32028ef3a]select id_temat, max(data) as data from mcz_post group by id_temat order by data desc[/sql:1:b32028ef3a]
O takie coś Ci chodziło? |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie jest dobre! thx, ale teraz musze zrobic tak zeby obok najnowszego tematu byla ostatnia data[php:1:9c376cbcf5]<?php
$zapytanie = "SELECT *, max(data) AS data2 FROM mcz_post GROUP BY id_temat ORDER BY data2 DESC"; $wykonaj = mysql_query($zapytanie); while($wiersz = mysql_fetch_array($wykonaj)) { echo "$wiersz[data] - $wiersz[temat] "; $zapytanie1 = "SELECT * FROM mcz_post WHERE id_temat=$wiersz[id] AND (id!=id_temat) ORDER BY data DESC"; $wykonaj1 = mysql_query($zapytanie1); $licz1 = mysql_num_rows($wykonaj1); echo "<br>"; while($wiersz1 = mysql_fetch_array($wykonaj1)) { echo "+ $wiersz1[data] $wiersz1[temat]<br>"; } echo "<br>"; } ?>[/php:1:9c376cbcf5] Wynik: Kod 2003-11-25 20:42:53 - Trzeci temat
+ 2003-11-27 14:42:34 Odpowiedz nr 5 do Trzeci temat + 2003-11-25 20:52:26 Odpowiedz nr 3 dla Trzeci temat 2003-11-25 21:54:14 - Czwarty temat 2003-11-25 20:40:43 - Pierwszy temat + 2003-11-25 20:53:25 Odpowiedz nr 4 do Pierwszy temat + 2003-11-25 20:44:17 Odpowiedz nr 1 do Pierwszy temat 2003-11-25 20:41:59 - Drugi temat + 2003-11-25 20:50:45 Odpowiedz nr 2 do Drugi Temat Chce tylko zeby obok tematu byla data ostatniego posta! -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
OK! dziala juz bezproblemowo
![]() Ale teraz dodalem kolumne w 'ogloszenia' i gdy ma ona wartosc '1' to przy temacie pojawia sie napis 'ogloszenie'. Chcialbym zeby te ogloszenia zawsze byly na gorze, a reszte sortowalo wg daty Jak to zrobic? -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
[sql:1:896c245e75]...
ORDER BY ogloszenia DESC, data [/sql:1:896c245e75] -------------------- Brak czasu :/
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Moja tabela
Kod id - opis - nid ---------------- 1 - qaz - 1 2 - wsx - 2 3 - edc - 1 4 - rfv - 3 5 - tgb - 1 6 - yhn - 5 niestety moja tabela teraz wyglada troszke inaczej: Kod id - opis - nid
---------------- 1 - qaz - 0 //temat 2 - wsx - 0 //temat 3 - edc - 1 //post 4 - rfv - 3 //post 5 - tgb - 1 6 - yhn - 5 gdyz podczas wstawiania do bazy tematow nie moge ustalic jaki obecny temat bedzie mial 'nid' Jak zrobic teraz to zapytanie?? -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 16:04 |