Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Czynne w godzinach
Forum PHP.pl > Forum > Przedszkole
tomek85
Witam - mam dwie tabele

CZYNNE
id, od, do, id_dzien, id_katalog

KATALOG_FIRM
id, nazwa firmy

Chciałbym wyświetlic godziny otwarcia dla każdego dnia i dla każdej firmy
Tak wyglada przykladowa tabela czynne:

Pełny tekst id od do id_dzien id_katalog
Edytuj Usuń 1 08:00:00 19:00:00 1 21
Edytuj Usuń 2 08:00:00 19:00:00 2 21
Edytuj Usuń 3 08:00:00 19:00:00 3 21
Edytuj Usuń 4 08:00:00 19:00:00 4 21
Edytuj Usuń 5 08:00:00 19:00:00 5 21
Edytuj Usuń 6 09:00:00 14:00:00 6 21
Edytuj Usuń 7 00:00:00 00:00:00 7 21
Edytuj Usuń 8 08:00:00 19:30:00 1 20
Edytuj Usuń 9 08:00:00 19:30:00 2 20
Edytuj Usuń 10 10:00:00 19:30:00 3 20
Edytuj Usuń 11 08:00:00 19:30:00 4 20
Edytuj Usuń 12 08:00:00 19:30:00 5 20
Edytuj Usuń 13 08:00:00 14:00:00 6 20
Edytuj Usuń 14 00:00:00 00:00:00 7 20

Napisałem coś takiego:

  1. include('connection.php');
  2.  
  3. $zapytanie_czynne_firmy = "
  4. SELECT
  5. id AS id,
  6. nazwa_firmy AS nazwa_firmy
  7.  
  8. FROM katalog_firm
  9. WHERE id_podkategoria = 11
  10. ORDER BY nazwa_firmy
  11. ";
  12.  
  13. $wynik_czynne_firmy = mysql_query($zapytanie_czynne_firmy) or die(mysql_error());
  14.  
  15. while ($r = mysql_fetch_array($wynik_czynne_firmy)) {
  16.  
  17. $firma = $r['nazwa_firmy'];
  18. $id = $r['id'];
  19.  
  20. $zapytanie_czynne_w_godzinach = "
  21. SELECT
  22. od AS od,
  23. do AS do
  24.  
  25. FROM czynne
  26. WHERE id_katalog = $id AND id_dzien = 5
  27. ORDER BY nazwa_firmy
  28. ";
  29.  
  30. echo "Nazwa firmy to $firma a id to $id<br /><br />";
  31.  
  32. while ($r = mysql_fetch_array($wynik_czynne_w_godzinach)) {
  33. $od = $r['od'];
  34. $do = $r['do'];
  35.  
  36. echo $od;
  37.  
  38.  
  39. }
  40. }


Nie działa - w sumie to mało maślane tu robię, ale nie wiem jak to rozgryśc strukturalnie - bo od obiektowosci poki co trzymam sie z daleka

Prosze o pomoc, sugestie ?!

  1. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in 33 czyli druga petla while
Zosiek
  1. $wynik_czynne_w_godzinach

co ta zmienna zawiera??
nie zapomnij zakończyć połączenia z bazą.
Larges
Zapewne każda firma ma u Ciebie własną podstronę.

Można przekazać id firmy w adresie (zmienna $_GET).
np. domena.pl/index.php?id_firmy=4

U Ciebie id_fimy = nr katalogu w tabeli (o ile dobrze zrozumiałem).

jak masz id firmy dajesz np. kod:

  1. if(!empty($_GET['id_firmy)
  2. {
  3. $id = (int) $_GET['id_firmy);
  4. $baza = mysql_query("SELECT od, do, id_dzien FROM CZYNNE WHERE id_katalog='" . $id . "'");
  5. //........ dalej sobie wyświetlasz za pomocą np. pętli while i mysql_fetch_array
  6. // jeśli chcesz połączyć obie tabele poszukaj info o LEFT JOIN
  7. }


Twoje podejście do obiektowości jest przerażające. Obiektowość to dar dla programistów PHP - korzystaj smile.gif i don`t repeat yourself
Burned
mysql_query zgubiłeś
tomek85
Tak rzeczywisice jedna zmienna zgubilem teraz mam tak:

  1. include('connection.php');
  2.  
  3. $zapytanie_czynne_firmy = "
  4. SELECT
  5. id AS id,
  6. nazwa_firmy AS nazwa_firmy
  7.  
  8. FROM katalog_firm
  9. WHERE id_podkategoria = 11
  10. ORDER BY nazwa_firmy
  11. ";
  12.  
  13. $wynik_czynne_firmy = mysql_query($zapytanie_czynne_firmy) or die(mysql_error());
  14.  
  15. while ($r = mysql_fetch_array($wynik_czynne_firmy)) {
  16.  
  17. $firma = $r['nazwa_firmy'];
  18. $id = $r['id'];
  19.  
  20. $zapytanie_czynne_w_godzinach = "
  21. SELECT
  22. od AS od,
  23. do AS do
  24.  
  25. FROM czynne
  26. WHERE id_katalog = $id AND id_dzien = 5
  27.  
  28. ";
  29.  
  30. $wynik_czynne_firmy = mysql_query($zapytanie_czynne_w_godzinach) or die(mysql_error());
  31.  
  32. echo "Nazwa firmy to $firma a id to $id<br /><br />";
  33.  
  34.  
  35.  
  36. while ($r = mysql_fetch_array($wynik_czynne_w_godzinach)) {
  37. $od = $r['od'];
  38. $do = $r['do'];
  39.  
  40. echo $od;
  41.  
  42.  
  43. }
  44. }


ale to i tak nierozwiazuje mojego problemu z wyswietleniem bo jakies bzudy w tej drugiej petli pisze wydaje mi sie, ale nie wiem jak to napisac.

Larget nie pisalem o tym GET tylko napisalem id_podkategoria = 11, aby niemieszac tutaj i sobie w testowaniu

Z tym problemem walcze juz ponad miesiac i znowu musialem do niego wrocic ale nie wiem jak go rozwiac:(
Zosiek
Jak ma ci działać jak do zmiennej
  1. $wynik_czynne_w_godzinach
nie masz przypisanego żadnego mysql_query()
zamień:
  1. $wynik_czynne_firmy = mysql_query($zapytanie_czynne_w_godzinach) or die(mysql_error());
  2.  
  3. echo "Nazwa firmy to $firma a id to $id<br /><br />";
  4.  
  5.  
  6.  
  7. while ($r = mysql_fetch_array($wynik_czynne_w_godzinach)) {
  8. $od = $r['od'];
  9. $do = $r['do'];

na
  1. $wynik_czynne_w_godzinach= mysql_query($zapytanie_czynne_w_godzinach) or die(mysql_error());
  2.  
  3. echo "Nazwa firmy to $firma a id to $id<br /><br />";
  4.  
  5.  
  6.  
  7. while ($r = mysql_fetch_array($wynik_czynne_w_godzinach)) {
  8. $od = $r['od'];
  9. $do = $r['do'];

Dałem kilka postów wyżej gdzie jest błąd. Pamiętaj o sprawdzaniu zmiennych i przeszukiwaniu kodu. Jeśli błąd zwraca error zmiennej lub funkcji php to zobacz gdzie jest użyta, do czego przypisana i dlaczego nie działa: smile.gif
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.