Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Pętla while, Wyłączenie wyniku z pętli oraz połączenie wyników
bubusek
post 19.05.2011, 12:58:43
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 1
Dołączył: 2.10.2007

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


Witam.

Prosił bym o pomoc.
Mam taki kod.
  1. $zzz = mysql_query("SELECT xxx, ccc, vvv FROM ppp WHERE iii='iii'")or die(mysql_error());
  2. while($zz = mysql_fetch_assoc($zzz)){
  3. echo ' '.$zz['xxx'].' -- '.$zz['ccc'].' -- '.$zz['vvv'].' ';
  4. }


W jednym przypadku chciał bym aby gdy w bazie znajdą się 2 lub więcej identyczne rekordy 'xxx' w pętli został przedstawiony tylko 1.
Natomiast w drugim chciał bym aby gdy w bazie znajdą się 2 lub więcej identyczne rekordy 'xxx' w pętli został on przedstawiony jako 1 ale z połączonymi ze sobą rekordami 'ccc' i 'vvv'

Pomorze ktoś przedszkolakowi smile.gif ?
Go to the top of the page
+Quote Post
matino
post 19.05.2011, 13:13:15
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 30
Dołączył: 9.08.2007

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


Zapoznaj się z LIMIT w MySQL
Go to the top of the page
+Quote Post
bubusek
post 19.05.2011, 13:19:51
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 1
Dołączył: 2.10.2007

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


Nie nie mi tu nie chodzi o LIMIT.
LIMIT nie ma być ustawiony.

Chodzi mi tutaj o przypadek gdzie w bazię będę miał np 100 rekordów a w tym 2 identyczne i by w tym momencie wyświetliło wtedy w pętli 99.
Go to the top of the page
+Quote Post
melkorm
post 19.05.2011, 13:21:38
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Zainteresuj się GROUP BY (oczywiście w MySql'u)

Ten post edytował melkorm 19.05.2011, 13:22:01


--------------------
Go to the top of the page
+Quote Post
plej
post 19.05.2011, 13:23:19
Post #5





Grupa: Zarejestrowani
Postów: 264
Pomógł: 11
Dołączył: 9.05.2011
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


Zapoznaj się z tymi filmikami: http://www.uw-team.org/videoarty_kurs_mysql.html


Pozdro.smile.gif
Go to the top of the page
+Quote Post
bubusek
post 19.05.2011, 13:32:19
Post #6





Grupa: Zarejestrowani
Postów: 70
Pomógł: 1
Dołączył: 2.10.2007

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


Ok GROUP BY pomogło przy pierwszym przypadku czyli w przypadku 2 takich samych wyświetla tylko 1 smile.gif

Teraz muszę jeszcze wykombinować jak zrobić by wtedy jeszcze do wyświetlanego wyniku dodało wartości tego pominiętego rekordu, poprzeglądam te filmiki może pomogą smile.gif


No niestety pomysłu dalej nie mam jak przy wykorzystaniu GROUP BY
  1. $zzz = mysql_query("SELECT xxx, ccc, vvv FROM ppp WHERE iii='iii' GROUP BY xxx ")or die(mysql_error());
  2. while($zz = mysql_fetch_assoc($zzz)){
  3. echo ' '.$zz['xxx'].' -- '.$zz['ccc'].' -- '.$zz['vvv'].' ';
  4. }

Nie przepadały dane 'ccc' i 'vvv' tylko sumowały się dla danego 'xxx'

Ten post edytował bubusek 19.05.2011, 13:56:17
Go to the top of the page
+Quote Post
thek
post 19.05.2011, 14:03:16
Post #7





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Dla grupowania są funkcje agregujace takie jak choćby sumowanie czy zliczanie smile.gif Chyba już wiesz co dalej robić? wink.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
bubusek
post 19.05.2011, 14:21:20
Post #8





Grupa: Zarejestrowani
Postów: 70
Pomógł: 1
Dołączył: 2.10.2007

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


Victory Lkingsmiley.png

Ślicznie dziękuje smile.gif

Ten post edytował bubusek 19.05.2011, 14:23:20
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 20:56