![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 18.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam tabele w bazie MySQL:
[php:1:c10713df4c]<?php CREATE TABLE `test` ( `osoba` varchar(40) NOT NULL default '', `wyniki` varchar(40) NOT NULL default '' ) TYPE=MyISAM COMMENT='tabela'; INSERT INTO `test` VALUES ('adam', '11'); INSERT INTO `test` VALUES ('kuba', '12, 89'); INSERT INTO `test` VALUES ('ola', '56'); INSERT INTO `test` VALUES ('maciek', '4, 78, 54'); INSERT INTO `test` VALUES ('monika', '23, 13'); INSERT INTO `test` VALUES ('krzychu', '92'); ?>[/php:1:c10713df4c] Chciałbym na stronie wyświetlić tabelę posortowaną wg. wyników: najpierw pole wynik, a pózniej osoba która osiągnęła ten wynik. Najpierw jednak chciałbym, aby jeśli dana osoba ma przypisany więcej niż jeden wynik, zostały one podzielone. Dla jasności przedstawię jak chciałbym otrzymać rezultat. Kod 4 maciek
11 adam 12 kuba 13 monika 23 monika 54 maciek 56 ola 78 maciek 89 kuba 92 krzychu proszę o pomoc bo kombinuje, ale coś mi nie idzie |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
[sql:1:e51e3cf269]SELECT * FROM tabela ORDER BY kolumna_z_pkt[/sql:1:e51e3cf269]
jesli bedzie kilka wynikow w jednym polu (np. 1, 54, 57) to uzyj [manual:e51e3cf269]explode()[/manual:e51e3cf269] -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
polecam zrobić struturę[sql:1:8e5a5377e7]CREATE TABLE costam (
imie VARCHAR(40) DEFAULT '', wynik INT, PRIMARY KEY(imie, wynik) )[/sql:1:8e5a5377e7]Wtedy będzie dużo łatwiej i przyjemniej - a nie zapominaj, że dobry projekt bazy to podstawa. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 18.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
->> kicaj
robie tak: [php:1:346bcea101]<?php $query = "SELECT * FROM test ORDER BY wyniki"; $mysql_result = mysql_query($query, $mysql_link); while($row = mysql_fetch_row($mysql_result)) { $osoba = $row[0]; $wyniki = $row[1]; $wynik = explode (", ", $wyniki); for($i=0; $i<count($wynik); $i++){ echo("$wynik[$i] - $osoba<BR>"); } } ?>[/php:1:346bcea101] ale otrzymuje wynik Kod 11 - adam
12 - kuba 89 - kuba 23 - monika 13 - monika 4 - maciek 78 - maciek 54 - maciek 56 - ola 92 - krzychu czyli nie tak jak chcialem - wyniki nie sa pokolei ![]() ->> Jabol jak zmienie typ pola wyniki na INT to znika mi z rekordu wszystko po pierwszym przecinku, czyli zostaje tylko jedna liczba, czyli ni o to mi chodzi CZEKAM NA DALSZE PODPOWIEDZI :wink: A MOZE ROBIE COS ZLE |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
najpierw stwórz sobie jedną dużą tablicę wyników a potem daj sort ( któreś z całej gamy - chyba usort będzie dobre ).
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 18.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
no wlasnie o tym myslalem - o stworzeniu jednej duzej tablicy
Ale nie wiem jak to zrobic (juz probowalem) - mozesz mi podpowiedziec? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 18.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
drodzy wymiatacze kodu
![]() i co? nikt mi nie podpowie jak to zrobic? ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
[php:1:7f91337a5f]<?php
$query = "SELECT * FROM test ORDER BY wyniki"; $mysql_result = mysql_query($query, $mysql_link); while($row = mysql_fetch_row($mysql_result)) { $osoba = $row[0]; $wyniki = $row[1]; $wynik = explode (", ", $wyniki); for($i=0; $i<count($wynik); $i++){ //echo("$wynik[$i] - $osoba<BR>"); $tablica_wynikow[$i]=$osoba; } } print_r(ktorystam[manual:7f91337a5f]sort[/manual:7f91337a5f]($tablica_wynikow)); ?>[/php:1:7f91337a5f]jeżeli sam siebie do mądrych głów nie zaliczach to co tutaj robisz ? ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 18.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Wybacz Jabol, ale nadal nie moge sobie poradzić. Zreszta dopiero sie ucze i zdaje sobie sprawe ze popełniam sporo błędów. Dlatego pisze na forum i prosze o pomoc.
Wicaz nie moge otrzymac rezultatu, o ktorym bylo na poczatku: Kod 4 maciek
11 adam 12 kuba 13 monika 23 monika 54 maciek 56 ola 78 maciek 89 kuba 92 krzychu Jesli wstawim kod w postaci z poprzedniego posta wyswietla mi sie: Kod 1
Modyfiuje go na rózne sposobu, ale nigdy nie optrzymuje postaci, jakiej oczekuje. Jeśli ktoś w stanie mi pomoc bede wdzieczny (a uwierzcie mi, ze probuje dojsc samemu w czym rzecz... ale bezskutecznie). |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 18.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
OK zrobiłem!
![]() koniec tematu |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 0 Dołączył: 9.09.2002 Ostrzeżenie: (0%) ![]() ![]() |
Cytat OK zrobiłem!
![]() koniec tematu No wiesz, mógłbyś podzielić się z innymi. -------------------- Nie ma nic stałego prócz zmiany...
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 18.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat No wiesz, mógłbyś podzielić się z innymi.
Spoko ![]() Wsumie to całkiem inaczej niż chcaiłem na początku. Zamiast pola wynik mam pole id_wyniku, i stworzylem osobna tabelke gdzie ma pola id_wyniku i wynik. I tak to w tej drugiej tabelce kazdym wynik zapiuje jako nowy wiersz. Pozniej pobieram rekordy porownujac id. to tyle ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 13:55 |