Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Problem z wyświetlaniem rekordów
Forum PHP.pl > Forum > Przedszkole
Tasilvar
Witam, w swoim projekcie realizowanym już od jakiegoś czasu, utworzyłem moduł wyszukiwania rekordów, z tym że nie pracuje dokładnie tak jak bym sobie tego życzył. Mianowicie - w kwestii samego wyszukiwania system sprawdza się nieźle, problem pojawia się przy wyświetlaniu rekordów, które chciałbym nieco w inny sposób zaprezentować.
Sytuacja ma się następująco:
Po przesłaniu formularza otrzymuję zwrócone rekordy w takiej postaci:

Mało przejrzyście wygląda taki sposób prezentacji danych i chciałbym aby te terminy przyjęć prezentowały się w jednym wierszu obok reszty danych, nie powtarzając zbędnie tego samego tj. do której jednostki przypisany jest ten termin.
Przedstawię również strukturę tabeli w bazie:
Tabela pracownika:

Tabela terminów przyjęć:

Fragment kodu odpowiadający za pobranie rekordów i ich wyświetlenie:

  1. /*
  2. .
  3. .
  4. .
  5. */
  6. $promien = (int)$_POST['odl_max_wyszukaj'];
  7. $lon_p = (float)$_POST['odl_szer_p0'];
  8. $lat_p = (float)$_POST['odl_dl_p0'];
  9. sin(radians(dlugosc_geo)))) AS `dystans` FROM `G_API` HAVING `dystans` < ".$promien." AND `id_pracownika` = ORDER BY `dystans` ASC"
  10. echo "<table class='tab_rezultat'>
  11. <tr class='naglowek_wyniki'><td>imie i nazwisko</td><td>adres</td><td>godziny przyjec</td><td>dla osób niepełnosprawnych</td><td>umowa z NFZ</td></tr>";
  12. $lat = 50.4829014;
  13. $lon = 17.3435193;
  14. if(!empty($odl_max)) {
  15. $wynik = mysql_query("SELECT *,(6371 * acos( cos(radians(".$lat_p.")) * cos(radians(dlugosc_geo)) * cos(radians(szerokosc_geo)- radians(".$lon_p.")) + sin(radians(".$lat_p.")) * sin(radians(dlugosc_geo)))) AS `dystans` FROM `G_API` INNER JOIN `G_API_terminy` ON G_API.id=G_API_terminy.id_pracownika HAVING `dystans` < ".$promien." OR ".$final_sql_szukaj."");
  16. //$wynik = mysql_query("SELECT *,(6371 * acos( cos(radians(".$lat_p.")) * cos(radians(dlugosc_geo)) * cos(radians(szerokosc_geo)- radians(".$lon_p.")) + sin(radians(".$lat_p.")) * sin(radians(dlugosc_geo)))) AS `dystans` FROM `G_API` HAVING `dystans` < ".$promien." OR ".$final_sql_szukaj);
  17. } else {
  18. $wynik = mysql_query("SELECT * FROM `G_API` INNER JOIN `G_API_terminy` ON G_API.id=G_API_terminy.id_pracownika WHERE ".$final_sql_szukaj."");
  19. //$wynik = mysql_query("SELECT * FROM `G_API` WHERE ".$final_sql_szukaj);
  20. }
  21. $ile = @mysql_num_rows($wynik);
  22. echo $ile;
  23. //--------------------------------------------------------------------------
  24. while($odczytuj_wynik = @mysql_fetch_array($wynik)) {
  25. echo "<tr class='wiersz_wynik'>";
  26. echo "<td class='wyszukaj_wiersz'><span style='font-weight:bold;'>".$odczytuj_wynik['tytul']." ".$odczytuj_wynik['imie_nazwisko']."</span><br/><span style='text-indent:30px;'>".$odczytuj_wynik['specjalizacja']."</span></td>
  27. <td class='wyszukaj_wiersz'>".$odczytuj_wynik['adres']."</td>";
  28. echo "<td class='wyszukaj_wiersz'>";
  29. echo "".$odczytuj_wynik['dni']." ".$odczytuj_wynik['godz_od'].".".$odczytuj_wynik['min_od']." - ".$odczytuj_wynik['godz_do'].".".$odczytuj_wynik['min_do']."<br/>";
  30. echo "</td>";
  31. echo "<td class='wyszukaj_wiersz'>".$odczytuj_wynik['niepelnosprawni']."</td>
  32. <td class='wyszukaj_wiersz'>".$odczytuj_wynik['nfz']."</td>";
  33. echo "</tr>";
  34. }
  35. echo "</table>";
  36. /*
  37. .
  38. .
  39. .
  40. */
  41.  


Problem pewnie leży w kwestii samego zapytania do bazy albo przy ewentualnej jej strukturze. Jeśli macie jakieś sugestie to proszę o pomoc.
Fifi209
Musisz sobie ładnie policzyć ile rekordów ma taką samą specjalizację (bo o to chodzi jak się domyślam), dodać kolumnę np z przodu i wygenerować odpowiednią tabelkę gdzie będzie to połączone
http://www.w3schools.com/html/html_tables.asp

Szukaj: cell

smile.gif
Tasilvar
Z tym że mi chodzi aby rekordy z dniami przyjęć wyświetlały się w jednej komórce, nie powielając zbędnie tej samej jednostki x-razy.
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.