Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Sortowanie wyników z bazy
yoga
post 3.11.2012, 11:50:04
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 30.08.2006
Skąd: Far Far Away

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


Witam ponownie.
Mam kolejny problem z sortowaniem wyników pobieranych z tabel.
Mam 2 tabele klienci oraz rolety. W tabeli klienci jest zapisany status zamówienia a w roletach zapisane są informacje nt. szerokości, wysokosci, ilości, koloru tkaniny. Dane do wyniku s a pobierane tylko dla klientów dla których status wynosi 0.
  1. $sql = mysql_query("SELECT * FROM `zam_mini` INNER JOIN `zam_klient` ON zam_mini.id_klienta = zam_klient.id WHERE zam_klient.status = 0");

Chciałbym wyciągnąć z bazy informacje ile i jakie kolory tkanin mam do zrobienia, żebym mógł sobie wpisać wartości do programu do optymalizacji rozkroju.

Czyli chciałbym otrzymać taki wynik:
Cytat
kolor | wymiar | szt |
------------------------
a2 | 30x150 | 3 |
| 40x150| 1 |
------------------------
a3 | 60x140 | 4 |
------------------------
a4 | 30x150 | 1 |
| 40x130 | 2 |
| 50x215 | 8 |
------------------------


Kolor do bazy jest wpisywany z ręki podczas wprowadzania danych do zamówienia (za dużo kolorów żeby robić selecta).

Niestety nie wiem jak to ugryźć. Proszę naprowadzcie mnie na właściwy tor myślenia.

Go to the top of the page
+Quote Post
XP'ek
post 3.11.2012, 12:17:11
Post #2





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

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


ja osobiście zrobiłbym przekazanie wyników do tablicy następnie wykonał sortowanie tablicy i jej wyświetlenie ew. export danych do programu
Go to the top of the page
+Quote Post
yoga
post 3.11.2012, 15:36:44
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 30.08.2006
Skąd: Far Far Away

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


Ok napisałem coś takiego:
  1. function tkaniny() {
  2. if (isset($_GET['tkanina'])) {
  3.  
  4. $kolor = mysql_query("SELECT DISTINCT tkanina FROM `zam_mini` INNER JOIN `zam_klient` ON zam_mini.klient = zam_klient.id WHERE zam_klient.status = 0 ORDER BY zam_mini.tkanina ASC");
  5. echo '<table><tr><td>Kolor</td><td>szerokość</td><td>wysokosc</td><td>szt</td></tr></table>';
  6. echo '<div style="width:1000px;">';
  7.  
  8. while($kol = mysql_fetch_arraY($kolor, MYSQL_ASSOC))
  9. {
  10. $tkanina=$kol['tkanina'];
  11. echo '<div style=" width: 250px; border: 1px solid #ccc; padding: 5px; float: left; position:relative;"><span style="font-weight:bold;">'.$tkanina.'</span>';
  12.  
  13. $sql = mysql_query("SELECT * FROM `zam_mini` INNER JOIN `zam_klient` ON zam_mini.klient = zam_klient.id WHERE zam_klient.status = 0 AND zam_mini.tkanina='$tkanina'");
  14. while($row = mysql_fetch_arraY($sql, MYSQL_ASSOC))
  15. {
  16. echo '<div>'.$row['szer'].'';
  17. echo ' x '.$row['wys'].'';
  18. echo ' - '.$row['szt'].'szt';
  19. echo ' { '.$row['nick'].'} </div>';
  20. }
  21. echo '</div>';
  22. }
  23. echo '</div>';
  24. }
  25. }

i mam to o co mi chodziło.

Teraz chciałbym uzyskać spis szerokości rurek do cięcia - napisałem taką funkcję:
  1. function rurki() {
  2. if (isset($_GET['rurka'])) {
  3. $rurki = mysql_query("SELECT * FROM `zam_mini` INNER JOIN `zam_klient` ON zam_mini.klient = zam_klient.id WHERE zam_klient.status = 0 ORDER BY zam_mini.szer ASC");
  4. echo '<div style="width:1000px;">';
  5.  
  6. while($row = mysql_fetch_arraY($rurki, MYSQL_ASSOC))
  7. {
  8. echo '<div style=" width: 250px; border: 1px solid #ccc; padding: 5px; float: left;">';
  9. echo '<div>'.$row['szer'].'';
  10. echo ' - '.$row['szt'].'szt</div>';
  11. echo '</div>';
  12. }
  13.  
  14. }
  15. }

wszystko ładnie pobiera ale chciałbym znowu pogrupować wyniki tzn. zamiast otrzymywać 73 - 2szt , 73 - 2szt chciałbym otrzymać od razu 73 - 4szt.

pomożecie? smile.gif

Dziękuję za waszą bezcenną pomoc. Milczenie w tym temacie była tak wymowne, że problem został rozwiązany.
Ku potomności funkcja do której dązyłem:
  1. $szerokosc = mysql_query("SELECT DISTINCT szer FROM `zam_mini` INNER JOIN `zam_klient` ON zam_mini.klient = zam_klient.id WHERE zam_klient.status = 0 ORDER BY zam_mini.szer ASC");
  2. echo '<div style="width:1000px;">';
  3.  
  4. while($kol = mysql_fetch_arraY($szerokosc, MYSQL_ASSOC))
  5. {
  6. $szer=$kol['szer'];
  7. echo '<div style=" width: 250px; border: 1px solid #ccc; padding: 5px; margin: 5px; float: left; position:relative;"><span style="font-weight:bold;">'.($szer + 0.5).'</span>';
  8.  
  9. $sql = mysql_query("SELECT szt FROM `zam_mini` INNER JOIN `zam_klient` ON zam_mini.klient = zam_klient.id WHERE zam_klient.status = 0 AND zam_mini.szer='$szer'");
  10. $suma = 0;
  11. while($row = mysql_fetch_arraY($sql, MYSQL_ASSOC))
  12. {
  13. $suma = $suma + $row['szt'];
  14. }
  15.  
  16. echo ' - <strong>'.$suma.'</strong> szt';
  17. echo '</div>';
  18.  
  19. }
  20. echo '</div>';
  21.  
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: 5.07.2025 - 12:07