Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie wyników, PDO PHP
Forum PHP.pl > Forum > PHP
boosik01
Witam. Potrzebuję zrobić sortowanie wyników. Ma to wyglądać mniej więcej tak:

Baza:
ID | CLASS | NAME
1 | A | cos
2 | B| xxx
3 | B | sdas
4 | A | aaaa
5 | A | asvs

Tzn chodzi mi o to by posortować wszystkie wyniki, a następnie wyświetlić je już posortowane.
A i później chciałbym zrobić odnośniki do każdej klasy, czyli:
link.pl?class=A

Zrobiłem sortowanie ręczne tzn:

Pliczek php:
  1. switch($_GET['class'])
  2. {
  3. case 'A':
  4. $cars = $pdo->query('SELECT * FROM car_showroom WHERE class="A" ORDER BY cash DESC ');
  5. foreach($cars as $car)
  6. {
  7. $show_car[] = $car;
  8. }
  9. break ;
  10. case 'B':
  11. $cars = $pdo->query('SELECT * FROM car_showroom WHERE class="B" ORDER BY cash DESC ');
  12. foreach($cars as $car)
  13. {
  14. $show_car[] = $car;
  15. }
  16. break ;
  17. }


Pliczek tpl:
  1. {if $smarty.get.class == 'A'}
  2. <h4>Klasa A</h4>
  3.  
  4. {foreach from=$show_car item=v}
  5.  
  6.  
  7. {/foreach}
  8. {/if}
  9.  
  10.  
  11. {if $smarty.get.class == 'B'}
  12. <h4>KLASA B</h4>
  13.  
  14. {foreach from=$show_car item=v}
  15.  
  16. {/foreach}
  17. {/if}

No i działa, lecz na większą skalę to nie wypali bo klas będzie sporo, więc kod miał by z jakieś 1000 linijek.
abort
Czy Ty naprawdę nie widzisz tego, że zarówno w PHP, jak i w Smarty powtarzasz TEN SAM KOD?

Zapytanie do SQL różni się w każdym przypadku filtrowaniem po polu "class"? Ze Smarty jest tak samo?
No to będzie cos takiego (po łebkach):
  1. $car_class = $_GET['class']
  2. $pdo = new PDO (....parametry);
  3.  
  4. $data = $pdo->prepare ('SELECT * FROM car_showroom WHERE class=":class" ORDER BY cash DESC ');
  5. $data->bindParam(':class', $car_class);
  6. $data->execute;
  7.  
  8. while ($row = $data->fetch()) {
  9. $cars[] = $row;
  10. }
  11.  
  12. // A dla Smarty robisz:
  13. $smarty->assign ('klasa', $car_class);
  14. $smarty->assign ('cars', $cars);
  15. $smarty->display (....);
  16.  
  17. // i już w samym smarty:
  18. <h4>Klasa {$klasa}</h4>
  19. {foreach from={$car} item=v}{/foreach}


Pisane lekko na kolanie - smarty nie używam od dość dawna, a PDO tylko okazjonalnie...
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.