Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Problem z if
Forum PHP.pl > Forum > Przedszkole
ComBox
Witam!
Nie mogę rozwiązać następującego problemu (męczę się już 2 dzień...):

  1. <?php
  2. ini_set('display_errors', 1);
  3.  
  4. $id = $_GET['id'];
  5. $rok = $_GET['rok'];
  6. $miesiac = $_GET['miesiac'];
  7. $v = $_GET['v'];
  8. //$id = 1;
  9. //$rok = 2007;
  10. //$miesiac = 06;
  11. //$v = 'dziennie';
  12.  
  13. include('includes/config.inc.php');
  14. include('includes/functions.inc.php');
  15.  
  16. $connect = mysql_connect($db_host, $db_user, $db_pass)
  17. or die("Polaczenie z MySQL nie udane. Prosimy sprobowac za chwile.");
  18. mysql_select_db($db_name)
  19. or die("Wybranie bazy MySQL nie udane.");
  20.  
  21. $prefix = PREFIX;
  22.  
  23. $gat = mysql_query("SELECT * FROM `{$prefix}gatunki` WHERE `id` = '$id' LIMIT 1");
  24. while($rekord = mysql_fetch_array($gat))
  25. {
  26. $id = $rekord['id'];
  27. $gatunek = $rekord['gatunek'];
  28.  
  29. if($v == 'dziennie')
  30. {
  31. fi($miesiac == '02')
  32. $data = view_dzien_luty($prefix, $id, $rok, $miesiac);
  33. elseif($miesiac == '01' or $miesiac == '03' or $miesiac == '05' or $miesiac == '07' or $miesiac == '08' or $miesiac == '10' or $miesiac == '12')
  34. $data = view_dzien_up($prefix, $id, $rok, $miesiac);
  35. else
  36. $data = view_dzien_dow($prefix, $id, $rok, $miesiac);
  37. }
  38. elseif($v == 'miesiecznie')
  39. $data = view_miesiac($prefix, $id, $rok);
  40. }
  41. else
  42. die('error Yxaqq1');
  43.  
  44. //$data = view_dzien_dow($prefix, $id, $rok, $miesiac);
  45.  
  46. $miesiacpl = miesiacpl($miesiac);
  47.  
  48. # PHPlot Example: Bar chart, 3 data sets, unshaded
  49. require_once 'includes/phplot.php';
  50.  
  51. $plot =& new PHPlot(600, 300);
  52. $plot->SetImageBorderType('plain');
  53.  
  54. $plot->SetPlotType('bars');
  55. $plot->SetDataType('text-data');
  56. $plot->SetDataValues($data);
  57.  
  58. # Main plot title:
  59. $plot->SetTitle("$gatunek - $miesiacpl $rok");
  60.  
  61. # No 3-D shading of the bars:
  62. $plot->SetShading(0);
  63.  
  64. # Make a legend for the 3 data sets plotted:
  65. //$plot->SetLegend(array('historia'));
  66.  
  67. # Turn off X tick labels and ticks because they don't apply here:
  68. $plot->SetXTickLabelPos('none');
  69. $plot->SetXTickPos('none');
  70.  
  71. $plot->DrawGraph();
  72. }
  73.  
  74. ?>



Problem jest tutaj:
jesli zahaszuje ten kod
  1. <?php
  2. if($v == 'dziennie')
  3. {
  4. fi($miesiac == '02')
  5. $data = view_dzien_luty($prefix, $id, $rok, $miesiac);
  6. elseif($miesiac == '01' or $miesiac == '03' or $miesiac == '05' or $miesiac == '07' or $miesiac == '08' or $miesiac == '10' or $miesiac == '12')
  7. $data = view_dzien_up($prefix, $id, $rok, $miesiac);
  8. else
  9. $data = view_dzien_dow($prefix, $id, $rok, $miesiac);
  10. }
  11. elseif($v == 'miesiecznie')
  12. $data = view_miesiac($prefix, $id, $rok);
  13. }
  14. else
  15. die('error Yxaqq1');
  16.  
  17. //$data = view_dzien_dow($prefix, $id, $rok, $miesiac);
  18. ?>

i odhaszuje
  1. <?php
  2. //$data = view_dzien_dow($prefix, $id, $rok, $miesiac);
  3. ?>

to wszystko dziala prawidlowo..... Pomozcie, bylbym bardzo wdzieczny.
Pozdrawiam

PS. prosze nie patrzec na brak filtrowania zmiennych $_GET, poniewaz to wykonam troche pozniej.
Cienki1980
Może wskaż miejsce gdzie nie działa i jak powinno działać ... będzie wygodniej.
plisek
po pierwsze, pokaz jaki konkretny błąd wywala, bo troche cięko jasnowidztwo uprawiać bez całości

po drugie popraw linijkę
  1. <?php
  2. fi($miesiac == '02')
  3. ?>
, bo raczej tam if stac powinno, chyba ze to tylko bład przy kopiowaniu ;P


pozdrawiam
ComBox
Blad jest tutaj:

  1. <?php
  2. if($v == 'dziennie')
  3. {
  4. if($miesiac == '02')
  5. $data = view_dzien_luty($prefix, $id, $rok, $miesiac);
  6. elseif($miesiac == '01' or $miesiac == '03' or $miesiac == '05' or $miesiac == '07' or $miesiac == '08' or $miesiac == '10' or $miesiac == '12')
  7. $data = view_dzien_up($prefix, $id, $rok, $miesiac);
  8. else
  9. $data = view_dzien_dow($prefix, $id, $rok, $miesiac);
  10. }
  11. elseif($v == 'miesiecznie')
  12. $data = view_miesiac($prefix, $id, $rok);
  13. ?>
Cienki1980
Ale jaki błąd questionmark.gif co się powinno dziać a co się dzieje questionmark.gif
ComBox
Powinno wywolac funkcje, ktorej wynik jest zapisywany do $data, nastepnie biblioteka wyswietla obrazek na podstawie $data. Jesli pomine ta konstrukcje if i zastapie je np tym:

  1. <?php
  2. $data = view_miesiac($prefix, $id, $rok);
  3. ?>


To wszystko dziala prawidlowo. Z ifami nic sie nie dzieje, biala strona.
Cienki1980
Strzelam dwie możliwości:
1. Albo zmienna $miesiac jest pusta / albo zmienna $v

2.Funkcje do tworzenia zmiennej $data nie działają poprawnie.

Ten fragment kodu który podałeś ostatnio działa jak najbardziej poprawnie ... zmieniając wartość zmiennej $miesiac wchodze w odpowiedniego if'a
ComBox
Cytat(Cienki1980 @ 13.01.2007, 16:08:12 ) *
Strzelam dwie możliwości:
1. Albo zmienna $miesiac jest pusta / albo zmienna $v

2.Funkcje do tworzenia zmiennej $data nie działają poprawnie.

Ten fragment kodu który podałeś ostatnio działa jak najbardziej poprawnie ... zmieniając wartość zmiennej $miesiac wchodze w odpowiedniego if'a


1. Sprawdzilem przez var_dump() i sa prawidlowe (oczywiscie, jesli usune ify).
2. Dzialaja prawidlowo, jesli usune te ify....
Cienki1980
A powstawiaj zamiast tych funkcji jakieś proste echo np tak:

  1. <?php
  2. if($v == 'dziennie')
  3. {
  4.  if($miesiac == '02')
  5. echo "luty";
  6.  elseif($miesiac == '01' or $miesiac == '03' or $miesiac == '05' or $miesiac == '07' or $miesiac == '08' or $miesiac == '10' or $miesiac == '12')
  7. echo "ma 31 dni";
  8.  else
  9. echo "ma 30 dni";
  10.  
  11. }
  12. elseif($v == 'miesiecznie')
  13. {
  14.  echo "miesiecznie";
  15. }
  16. ?>


Jeżeli to też Ci nie zadziała, znaczy że skopane są jednak zmienne $miesiac i/lub $v
Jeżeli to Ci zadziała, znaczy że skopane są funkcje produkujące zmienną $data.
ComBox
Nawet jak zrobi cos takiego:

  1. <?php
  2. $id = 1;
  3. $rok = 2007;
  4. $miesiac = '06';
  5. $v = 'dziennie';
  6. if($v == 'dziennie')
  7. {
  8. if($miesiac == '02')
  9. echo 'dzien_luty';
  10. //$data = view_dzien_luty($prefix, $id, $rok, $miesiac);
  11. elseif($miesiac == '01' or $miesiac == '03' or $miesiac == '05' or $miesiac == '07' or $miesiac == '08' or $miesiac == '10' or $miesiac == '12')
  12. echo 'dzien_up';
  13. //$data = view_dzien_up($prefix, $id, $rok, $miesiac);
  14. else
  15. echo 'dzien_dow';
  16. //$data = view_dzien_dow($prefix, $id, $rok, $miesiac);
  17. }
  18. elseif($v == 'miesiecznie')
  19. //$data = view_miesiac($prefix, $id, $rok);
  20. echo 'miesiecznie';
  21. }
  22. else
  23. die('error Yxaqq1');
  24. ?>

To sie nic nie wyswietla....
Cienki1980
No to masz problem ...
Skopiowałem Twój kod .. wywaliłem jeden niepotrzebny nawias }
i proszę

dokladnie Twój przyklad

opcja z dzien_up

opcja z dzien luty

opcja z dzien_down

Edit:
Jeżeli dodasz do paska adresu zmienną v=miesiecznie .... zmieni się też napis na miesięcznie
ComBox
O kurcze, zawsze tak bywa, ze jakis glupi blad i sie 2 dni traci..... Naprawde wielkie dzieki za spojrzenie na to trzezwym okiem guitar.gif
Pozdrawiam i zycze braku takich bledow
mike
~ComBox przeczytaj (bo najwidoczniej tego nie zrobiłeś) to: Regulamin :: Zakładanie nowego tematu (topic). i popraw tytuł wątku.
Ma on nas informować o tym co jest w środku a nie nawiązywać do Twoich spostrzeżeń, przemyśleń bądź stanów emocjonalnych.
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.