babajaro
21.04.2004, 17:36:56
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 = ' ';
$i = 0;
while ($query_data4 = mysql_fetch_row($result4))
{
$menuOf .= "<br><b>".$query_data4[0]."</b>".$query_data4[1];
$i++;
}
$menuOf .= ' ';
echo $menuOf;
?>[/php:1:3116ea4efd]
Majdan
21.04.2004, 18:22:33
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]
babajaro
21.04.2004, 18:28:27
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ł?
Majdan
21.04.2004, 18:37:04
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]
babajaro
21.04.2004, 18:43:05
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...

((
Majdan
21.04.2004, 18:49:04
[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".
FiDO
21.04.2004, 19:02:32
Jak chcesz wszystkie to nie mzoesz uzyc GROUP BY.
babajaro
22.04.2004, 08:43:40
wszystkie pola sa wypelnione...
a co musze uzyc jak nie GROUP by....?
Zbłąkany
22.04.2004, 09:04:29
ORDER by?? nie wiem czy taki cel chcesz osiagnac: wyswietlac wszystkie miasta z jakiegos wojewodztwa obok siebie

daj ORDER by woj powinno byc ok 8)
babajaro
22.04.2004, 09:44:23
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);
FiDO
22.04.2004, 11:43:48
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.
babajaro
22.04.2004, 11:56:42
a moglbym Cie prosic o taki kodzik? dla Ciebie to pewnie pryszczyk patrzac na ilosc ludzi, ktorym pomogles...
z gory wielkie dziekns!
Pozdrowka
BzikOS
22.04.2004, 13:01:05
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.
babajaro
22.04.2004, 13:04:13
chyba spokoj sobie dam...

((
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!
DreeD
22.04.2004, 13:06:07
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]
:?
FiDO
22.04.2004, 14:36:00
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" ...)
)
babajaro
22.04.2004, 14:39:27
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...
FiDO
22.04.2004, 15:12:43
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.
pppspoonman
14.05.2004, 12:02:18
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?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.