Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Sortowanie
Forum PHP.pl > Forum > PHP
kiler129
Mam taki moze blachy problem ale nie moge go rozwiazac.
Mam 2 tabele - clients i serwis. Daje SELECT * FROM `clients` ORDER BY `costam` - i tu problemu nie mam.
Ale po tym zapytaniu pokazuje tabele, jedna z jej kolumnt jest liczba napraw. Uzyskuje ja wydajac zapytnie SELECT * FROM `serwis` WHERE `client_id` = '1' i nastpnie to licze.
Teraz czy jest mozliwosc posortowanie wynikow po ilosci napraw?
Nie mam pojecia jak to zrobic jesli mam 2 tabele dry.gif
Z gory dziekuje za pomoc.
Qleer
Czy nie lepiej by było dodać do tabeli 1, kolumny o nazwie powiedzmy 'ilosc_napraw' - tam zapisywać aktualna ilość i według tego sortować ?
Znacznie odciążyło by to bazę danych.

Co do pytania, da się to zrobić ... myślę, że coś w ten deseń:
Dajesz ($result) SELECT * FROM `clients` ORDER BY `costam`

  1. <?php
  2. while ($row=@mysql_fetch_assoc($result){
  3. //Zlicza ilosc napraw danego klienta z drugiej bazy
  4. $ilosc=mysql_fetch_row(mysql_query("COUNT(*) FROM druga_tabela_z_naprawami WHERE client_id='".$row['id']."'"));
  5. $row['ilosc']=$ilosc[0];
  6. $baza[]=$row;
  7. }
  8. ?>


Teraz sortujesz tablicę $baza według 'ilosc'.

Jednak polecam utworzenie kolumny ilosc_napraw w 1 tabeli winksmiley.jpg
krowal
Mieszacie i mieszacie zamiast zrobić ładne zapytanie smile.gif
  1. SELECT c.* , COUNT( s.id ) AS serwis_count
  2. FROM `clients` AS c
  3. LEFT JOIN serwis AS s ON c.id = s.client_id
  4. GROUP BY c.id
  5. ORDER BY serwis_count
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.