Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Help! GROUP BY : wyswietla tylko pierwszy wpis ... Why?
babajaro
post 21.04.2004, 17:36:56
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 25.02.2004
Skąd: Grodzisk Maz.

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


czemu wyswietla mi tylko wojewodztwo i jedno miasto z tego wojewodztwa a nie kilka...
w bazie jest wpisane:
id,wojewodztwo,miasto

teraz wyswietla mi:

1Wrocław
2Kraków
3Bielsko-Biała
4Bydgoszcz
6Szczecin
7Gdańsk
8Białystok
12Poznań
13Elbląg

a powinien:

1Wrocław
2Kraków, Zakopane
3Bielsko-Biała
4Bydgoszcz,Piła
6Szczecin
7Gdańsk,Gdynia,Sopot
8Białystok
12Poznań
13Elbląg

Pomóżcie!

[php:1:3116ea4efd]<?php
// wybor adresow wedlug warunku zapytania
$result4 = mysql_query("SELECT woj, miasto FROM paker WHERE karrimor = 'T' GROUP BY woj", $id_db_connect);




$menuOf = '&nbsp;';
$i = 0;
while ($query_data4 = mysql_fetch_row($result4))
{
$menuOf .= "<br><b>".$query_data4[0]."</b>".$query_data4[1];


$i++;
}
$menuOf .= '&nbsp;';

echo $menuOf;
?>[/php:1:3116ea4efd]


--------------------
Jarek "babajaro"
Go to the top of the page
+Quote Post
Majdan
post 21.04.2004, 18:22:33
Post #2





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

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


Spróbuj tak:
[php:1:2cb50472ce]<?php
//(...)
$result4 = mysql_query("SELECT id, woj, miasto FROM paker WHERE karrimor = 'T' GROUP BY
woj", $id_db_connect);
//(...)
$menuOf .= "<br><b>".$query_data4[0]."</b>".$query_data4[1]." : ".$query_data4[2];
//(...)
?>[/php:1:2cb50472ce]


--------------------
Go to the top of the page
+Quote Post
babajaro
post 21.04.2004, 18:28:27
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 25.02.2004
Skąd: Grodzisk Maz.

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


wszystko po staremu... tylko że dołożyłeś chyba wyświetlenie id...

wygląda to tak:

51 : Wrocław
12 : Kraków
143 : Bielsko-Biała
164 : Bydgoszcz
96 : Szczecin
67 : Gdańsk
128 : Białystok
212 : Poznań
2313 : Elbląg

Masz jakis pomysł?


--------------------
Jarek "babajaro"
Go to the top of the page
+Quote Post
Majdan
post 21.04.2004, 18:37:04
Post #4





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

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


Spróbuj przez mysql_fetch_array():
[php:1:94084cbb93]<?php
//(...)
$result4 = mysql_query("SELECT 'woj', 'miasto' FROM 'paker' WHERE 'karrimor' = 'T' GROUP BY 'woj'", $id_db_connect);
//(...)
while($query_data4 = mysql_fetch_array($result4)) {
$menuOf .= $query_data4["woj"] . " : " . $query_data4["miasto"];

}
//(...)
?>[/php:1:94084cbb93]


--------------------
Go to the top of the page
+Quote Post
babajaro
post 21.04.2004, 18:43:05
Post #5





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 25.02.2004
Skąd: Grodzisk Maz.

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


I powstalo takie cos:

1 : Wrocław2 : Kraków3 : Bielsko-Biała4 : Bydgoszcz6 : Szczecin7 : Gdańsk8 : Białystok12 : Poznań13 : Elbląg

PS. a tak w ogole to probowalem DISTINCT czy jakos tak (na teraz nie pamietam dokladnej nazwy) ale niestety ta funkcja nie wyswietlila mi nic...
jakis pech czy co...

Jujz nie wiem co robic... sad.gif((


--------------------
Jarek "babajaro"
Go to the top of the page
+Quote Post
Majdan
post 21.04.2004, 18:49:04
Post #6





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

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


[php:1:330dafad21]<?php
//(...)
$menuOf .= "<br><b>".$query_data4["woj"]."</b>".$query_data4["miasto"];
//(...)
?>[/php:1:330dafad21]
Jak tak nie wyświetla czego chcesz to najwidoczniej masz pustą komórkę "miasto".


--------------------
Go to the top of the page
+Quote Post
FiDO
post 21.04.2004, 19:02:32
Post #7





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%)
-----


Jak chcesz wszystkie to nie mzoesz uzyc GROUP BY.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
babajaro
post 22.04.2004, 08:43:40
Post #8





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 25.02.2004
Skąd: Grodzisk Maz.

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


wszystkie pola sa wypelnione...

a co musze uzyc jak nie GROUP by....?


--------------------
Jarek "babajaro"
Go to the top of the page
+Quote Post
Zbłąkany
post 22.04.2004, 09:04:29
Post #9


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

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


ORDER by?? nie wiem czy taki cel chcesz osiagnac: wyswietlac wszystkie miasta z jakiegos wojewodztwa obok siebie smile.gif daj ORDER by woj powinno byc ok 8)


--------------------
Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox
Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..."
Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL"
Go to the top of the page
+Quote Post
babajaro
post 22.04.2004, 09:44:23
Post #10





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 25.02.2004
Skąd: Grodzisk Maz.

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


ale ja chce wedllle wojewodztw...

nie wim o co chodzi... a gdzie to ORDER wstawic...

$result4 = mysql_query("SELECT woj, miasto FROM paker WHERE karrimor = 'T' GROUP BY woj >", $id_db_connect);


--------------------
Jarek "babajaro"
Go to the top of the page
+Quote Post
FiDO
post 22.04.2004, 11:43:48
Post #11





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%)
-----


Dajesz ORDER BY po wojewodztwie, dzieki temu dane w bazy przyjda w formacie:
Kod
woj1   miasto1

woj1   miasto2

woj1   miasto3

woj2   miasto4

woj2   miasto5

woj3   miasto6

...

Teraz z poziomu php sprawdzasz czy ostatni wiersz ma takie samo wojewodztwo jak aktualna, jesli nie to wyswietlasz nazwe wojewodztwa, a jesli tak to tylko sama nazwe miasta.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
babajaro
post 22.04.2004, 11:56:42
Post #12





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 25.02.2004
Skąd: Grodzisk Maz.

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


a moglbym Cie prosic o taki kodzik? dla Ciebie to pewnie pryszczyk patrzac na ilosc ludzi, ktorym pomogles...

z gory wielkie dziekns!

Pozdrowka


--------------------
Jarek "babajaro"
Go to the top of the page
+Quote Post
BzikOS
post 22.04.2004, 13:01:05
Post #13





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


Przeciez to tylko kwestia segregacji..

[php:1:07c3729de9]<?php
$dane = Array();

while( list( $woj, $miasto ) = @mysql_fetch_assoc( $result4 ) )
$dane[$woj][] = $miasto;
?>[/php:1:07c3729de9]

W wyniku otrzymujesz ładną tablicę, którą możesz przedstawić w jakiej tylko Ci się podoba formie.
Go to the top of the page
+Quote Post
babajaro
post 22.04.2004, 13:04:13
Post #14





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 25.02.2004
Skąd: Grodzisk Maz.

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


chyba spokoj sobie dam... sad.gif((

jednak jestem wielkie dno jesli chodzi o SQL... a teraz to i php mi sie juz zapomnialo...

piszecie kod kawalkami i juz nie wiem ktory jest dobry, ktory zly...

Dzieki za wszelka pomoc!


--------------------
Jarek "babajaro"
Go to the top of the page
+Quote Post
DreeD
post 22.04.2004, 13:06:07
Post #15





Grupa: Przyjaciele php.pl
Postów: 120
Pomógł: 0
Dołączył: 29.11.2003
Skąd: Tarnów

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


Cytat
a moglbym Cie prosic o taki kodzik? dla Ciebie to pewnie pryszczyk patrzac na ilosc ludzi, ktorym pomogles...

z gory wielkie dziekns!

Pozdrowka


[php:1:5e0226a784]<?php
$result4 = mysql_query("SELECT woj, miasto FROM paker WHERE karrimor = 'T' ORDER BY
woj", $id_db_connect);
?>[/php:1:5e0226a784]

:?
Go to the top of the page
+Quote Post
FiDO
post 22.04.2004, 14:36:00
Post #16





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%)
-----


Cytat
a moglbym Cie prosic o taki kodzik? dla Ciebie to pewnie pryszczyk patrzac na ilosc ludzi, ktorym pomogles...

Ale to jeszcze nie znaczy, ze mam akurat czas.
BzikOS podal jeszcze lepsze (bardziej eleganckie i prostsze w wyswietlaniu) rozwiazanie, wiec proponuje z niego skorzytac.
Po kodzie, ktory podal bedziesz mial tablice tablic, gdzie pierwszym wymiarem jest wojewodztwo, a drugim miasta w nim:
Kod
Array(

  "mazowieckie" => Array("Warszawa", "inne", "wioski;)"),

  "wielkopolskie"=> Array("Poznan", "inne" ...)

)


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
babajaro
post 22.04.2004, 14:39:27
Post #17





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 25.02.2004
Skąd: Grodzisk Maz.

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


tak, tylko ze zmierzamy do tego, ze ja chce wyswietlic tylko miasta z wojewodztwami...

a oprocz tego chce wrzucic adresy i telefony, ktore mam w osobnych kolumnach tabeli...

tak sobie mysle, ze z tym moze byc problem...


--------------------
Jarek "babajaro"
Go to the top of the page
+Quote Post
FiDO
post 22.04.2004, 15:12:43
Post #18





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%)
-----


A ja sobie mysle, ze nie...
Po prostu zamiast wstawiac do tablicy nazwe miasta bedziesz wstawial kolejna tablice, w ktorej beda informacje o danym miescie.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
pppspoonman
post 14.05.2004, 12:02:18
Post #19





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 28.02.2004
Skąd: Warszawa

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


Znalazlem odpowiedni temat do mojego problemu.

Mam taka tabele konkurs:

id | nazwa | kategoria | glosy

Kategorii jest 25, wpisow ok. 3000. I teraz potrzebuje zapytanie do bazy o zwyciezcow w danej kategorii. Ale nie tylko jednego, co moge zrobic przez
[sql:1:7b9b50eff3]SELECT nazwa,kategoria,MAX(glosy) FROM konkurs GROUP BY kategoria ORDER BY kategoria[/sql:1:7b9b50eff3]

ale trzech pierwszych miejsc w danej kategorii. Jak to zrobic jednym zapytaniem SQL?
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: 19.07.2025 - 16:44