Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> sortowanie danych z bazy
Phomerus
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 6.11.2005

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


Witam,
zalozmy ze z bazy danych pobieram ID i SKOK- skok jest liczba
$zapytanie = mysql_query("SELECT ID, SKOK FROM costam");
i teraz moge to wyswietlic za pomoca petly while, ale jak zrobic zeby wszystkie te wyniki posortowaly sie w taki sposob zeby najpierw wyswietlalo najwyzsza wartosc a potem nizsze?
czyli np:
ID SKOK
ktos 123
ktos2 122
ktos3 118
itp, itd
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




to jest pytanie z baz. przenosze

  1. SELECT ID, SKOK
  2. FROM costam ORDER BY SKOK DESC;


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Phomerus
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 6.11.2005

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


zeby nie tworzyc nowego tematu pytani\e zadam tutaj
robie tak:
  1. <?php
  2. $zapytanie = mysql_query("SELECT id, skok FROM ipsrekordy WHERE skocznia='Polska' order by skok desc");
  3. $wynik= mysql_fetch_array($zapytanie);
  4. echo $wynik['id']."-<b><font size="6">".$wynik['skok']."</font></b>-jakasdata-pobierz dziadostwo<BR>";
  5. while($wynik= mysql_fetch_array($zapytanie)){
  6. echo $wynik['id']."-<b>".$wynik['skok']."</b>-jakasdata-pobierz dziadostwo<BR>";
  7. ?>

Pierwszy wynik wyswietlam przed petla bo chce go wyroznic wieksza czcionka, ale co bedzie jak beda 2 takie same najdalsze wyniki? Co zrobic zeby obydwa byly wyroznione?

EDIT: Troche pomyslalem i juz sobie poradzilem... wklepie kod mozekomus sie przyda:
  1. <?
  2. $zapytanie = mysql_query("SELECT id, skok FROM ipsrekordy WHERE skocznia='Polska' order by skok desc");
  3. $wynik= mysql_fetch_array($zapytanie);
  4. $zapytanie1 = mysql_query("SELECT id FROM ipsrekordy WHERE skocznia='Polska' AND skok='$wynik[skok]'");
  5. $wynik1 = mysql_num_rows($zapytanie1);
  6. If($wynik1>1){
  7. echo $wynik['id']."-<b><font size="6">".$wynik['skok']."</font></b>-jakasdata-pobierz dziadostwo<BR>";
  8. for($counter=$wynik1 -1; $counter>0; $counter--){
  9. $wynik= mysql_fetch_array($zapytanie);
  10. echo $wynik['id']."-<b><font size="6">".$wynik['skok']."</font></b>-jakasdata-pobierz dziadostwo<BR>";
  11. }
  12. while($wynik= mysql_fetch_array($zapytanie)){
  13. echo $wynik['id']."-<b>".$wynik['skok']."</b>-jakasdata-pobierz dziadostwo<BR>";
  14. }
  15. }
  16. else{
  17. echo $wynik['id']."-<b><font size="6">".$wynik['skok']."</font></b>-jakasdata-pobierz dziadostwo<BR>";
  18. while($wynik= mysql_fetch_array($zapytanie)){
  19. echo $wynik['id']."-<b>".$wynik['skok']."</b>-jakasdata-pobierz dziadostwo<BR>";
  20. }
  21. }
  22. ?>


Ten post edytował Phomerus 29.12.2005, 00:35:15
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




wszystko ladnie pięknie, ale...
stosujesz dodatkowe zbedne zapytanie do bazy. A zasada jest prosta: im mniej zapytan do bazy - tym lepiej

pomine juz fakt ze ten kod jest malo przejrzysty.
To co chcesz zrobic to juz na poziomie php sie robi:

  1. <?php
  2.  
  3. $zapytanie = mysql_query("SELECT id, skok FROM ipsrekordy WHERE skocznia='Polska' order by skok desc");
  4. $wynik= mysql_fetch_array($zapytanie);
  5. $bestResult = null;
  6. while($wynik= mysql_fetch_array($zapytanie)){
  7.     $skok = $wynik['skok'];
  8.     if (is_null($bestResult) || $skok == $bestResult){
  9.         $bestResult = $skok;
  10.         echo $wynik['id']."-<b><font size="6">$skok</font></b>-jakasdata-pobierz dziadostwo<BR>";
  11.     }
  12.     else
  13.         echo $wynik['id']."-<b>$skok</b>-jakasdata-pobierz dziadostwo<BR>";
  14. }
  15.  
  16. ?>

i tylko jedno zapytanie i kodu mniej smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Phomerus
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 6.11.2005

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


hmm i znowu mam problem, otoz chce to wszystko ponumerowac... i jezeli znajda sie gdzies takie same wyniki to zeby mialy takie samo miejsce a numer za nim byl odpowiednio powiekszony czyli np.

1. ktos1
1. ktos
3.ktos2
3.ktos3
3.ktos 4
6. ktos 5
Probowalem cos wymyslec ale nie dalem rady:/... moze na razie podajcie mi jakas koncepcje jak to zrobic, a nie gotowy kod.. moze sam go napisze smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




dwie dodatkowe zmienne: $poz1 - takie same pozycje
, $poz2 - kolejne numery

zaczunasz od zera
- jesli aktualny rekord ma te pozycje rozna od poprzedniej lub jest to pierwszy rekord - zwiekszasz $poz2 a do $poz1 przypisujesz $poz2
- w przeciwnym wypadku zwiekszasz tylko $poz2 a $poz1 pozostawiasz bez zmian


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
SongoQ
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Na bazie niestety nie zrobisz tego.


--------------------
Go to the top of the page
+Quote Post
Phomerus
post
Post #8





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 6.11.2005

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


Dzieki! Wszystko dziala!

Ten post edytował Phomerus 29.12.2005, 13:47: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 Aktualny czas: 22.08.2025 - 09:46