Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Co jest źle w tym kodzie?
marian2299
post
Post #1





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Nie wyświetla żadnego błędu, ale pomimo tego że nie ma żadnego rekordu nie pokazuje "nic dzisiaj nie gramy",
  1. <?php
  2.  
  3. $dni = array('Mon' => 'poniedzialek', 'Tue' => 'wtorek', 'Wed' => 'sroda', 'Thu' => 'czwartek', 'Fri' => 'piatek', 'Sat' => 'sobota', 'Sun' => 'niedziela');
  4. $dzien = $dni[date('D')];
  5.  
  6. $zapytanie = "SELECT * FROM `ram_$dzien` ORDER BY `start` ASC" or die('Error 3');
  7. $wynik = mysql_query($zapytanie) or die('Error 4');
  8. while($wiersz = mysql_fetch_array($wynik))
  9. {
  10. $ifek = count($wynik);
  11. $godzina = date("G:i");
  12. if ($ifek = 0) {
  13. echo "Nic dzisiaj nie gramy";
  14. }
  15. else if(($wiersz[1] >=$godzina) AND ($godzina<$wiersz[2])) {
  16. echo "<font color="red"><strong>$wiersz[1]-$wiersz[2]</strong> - $wiersz[3]<br />Prowadzi: <strong>$wiersz[4]</strong><br/><br/></color>"; }
  17.  
  18. else {
  19.  echo "<strong>$wiersz[1]-$wiersz[2]</strong> - $wiersz[3]<br />Prowadzi: <strong>$wiersz[4]</strong><br/><br/>";
  20. }
  21.  
  22. }
  23.  
  24. ?>
Powód edycji: [Spawnm] przeniosłem.


--------------------
film edit student
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
blooregard
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
if ($ifek = 0) {

Pomyliłeś przypisanie z porównaniem ( = z == )


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
Pr0100
post
Post #3





Grupa: Zarejestrowani
Postów: 114
Pomógł: 24
Dołączył: 18.01.2008
Skąd: Warszawa

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


  1. <?php
  2. $zapytanie = "...." or die('Error 3');
  3. ?>


bez sensu, zmienna $zapytanie zawsze zostanie zadeklarowana

Ten post edytował Pr0100 14.07.2009, 12:10:07


--------------------
Go to the top of the page
+Quote Post
marian2299
post
Post #4





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Niestety, nadal nie działa.
Pr0100, jak to "zawsze zostanie zadeklarowana" ?

Ten post edytował marian2299 14.07.2009, 12:11:15


--------------------
film edit student
Go to the top of the page
+Quote Post
Spawnm
post
Post #5





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




  1. <?php
  2. echo "<font color="red"><strong>$wiersz[1]-$wiersz[2]</strong> - $wiersz[3]<br />Prowadzi: <strong>$wiersz[4]</strong><br/><br/></color>";
  3. ?>

zmień na
  1. <?php
  2. echo "<font color=\"red\"><strong>$wiersz[1]-$wiersz[2]</strong> - $wiersz[3]<br />Prowadzi: <strong>$wiersz[4]</strong><br/><br/></color>";
  3. ?>
Go to the top of the page
+Quote Post
Pr0100
post
Post #6





Grupa: Zarejestrowani
Postów: 114
Pomógł: 24
Dołączył: 18.01.2008
Skąd: Warszawa

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


z
  1. <?php
  2. echo "<font color="red"><strong>$wiersz[1]-$wiersz[2]</strong> - $wiersz[3]<br />Prowadzi: <strong>$wiersz[4]</strong><br/><br/></color>"
  3. ?>


na
  1. <?php
  2. echo '<font color="red"><strong>'.$wiersz[1].'-'.$wiersz[2].'</strong> - '.$wiersz[3].'<br />Prowadzi: <strong>'.$wiersz[4].'</strong><br/><br/></color>'
  3. ?>


oraz

z
  1. <?php
  2. echo "<strong>$wiersz[1]-$wiersz[2]</strong> - $wiersz[3]<br />Prowadzi: <strong>$wiersz[4]</strong><br/><br/>";
  3. ?>


na
  1. <?php
  2. echo '<strong>'.$wiersz[1].'-'.$wiersz[2].'</strong> - '.$wiersz[3].'<br />Prowadzi: <strong>'.$wiersz[4].'</strong><br/><br/>';
  3. ?>


Ten post edytował Pr0100 14.07.2009, 12:15:20


--------------------
Go to the top of the page
+Quote Post
marian2299
post
Post #7





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


To nic nie dało, i domyśliłbym się gdyby był jakiś rekord, ale nie wyświetliło.
Tylko nadal nie pokazuje "nic dzisiaj nie gramy" ;/.


--------------------
film edit student
Go to the top of the page
+Quote Post
Spawnm
post
Post #8





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Pr0100 -> uzasadnij , w "" zamiast wyświetlić $nazwa_zmiennej wyświetla jej wartość.
Go to the top of the page
+Quote Post
piotrooo89
post
Post #9


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




zamiast count używaj: http://pl.php.net/manual/en/function.mysql-num-rows.php choć jest to najmniej wydajny sposób.

//EDIT

zapytanie powinno wyglądać tak:

  1. <?php
  2. $zapytanie = "SELECT * FROM `ram_$dzien` ORDER BY `start` ASC";
  3. $wynik = mysql_query($zapytanie) or die(mysql_error());
  4. ?>


Ten post edytował piotrooo89 14.07.2009, 12:19:36


--------------------
Go to the top of the page
+Quote Post
marian2299
post
Post #10





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Nadal nic nie wyświetla (strona się ładuje).
Dodam rekord i zobaczę czy się wyświetli.
Teraz zrobiło się coś dziwnego.
Audycje wyświetliły się, ale:
12:20-14:50 - BABCIA
Prowadzi: asdasd

16:50-19:40 - asdas
Prowadzi: MAMKA

A miało być odwrotnie. Audycje trwające miały być czerwone.
Jak usunę nadal nie pokazuje "Nic dzisiaj nie gramy"

Teraz mój kod wygląda tak:
  1. <?php
  2.  
  3. $dni = array('Mon' => 'poniedzialek', 'Tue' => 'wtorek', 'Wed' => 'sroda', 'Thu' => 'czwartek', 'Fri' => 'piatek', 'Sat' => 'sobota', 'Sun' => 'niedziela');
  4. $dzien = $dni[date('D')];
  5.  
  6. $zapytanie = "SELECT * FROM `ram_$dzien` ORDER BY `start` ASC";
  7. $wynik = mysql_query($zapytanie) or die(mysql_error());
  8. while($wiersz = mysql_fetch_array($wynik))
  9. {
  10. $ifek = mysql_num_rows($wynik);
  11. $godzina = date("G:i");
  12. if ($ifek == 0) {
  13. echo "Nic dzisiaj nie gramy";
  14. }
  15. else if(($wiersz[1] >=$godzina) AND ($godzina>$wiersz[2])) {
  16. echo "<font color=\"red\"><strong>$wiersz[1]-$wiersz[2]</strong> - $wiersz[3]<br />Prowadzi: <strong>$wiersz[4]</strong><br/><br/></color>"; }
  17.  
  18. else {
  19.  echo '<strong>'.$wiersz[1].'-'.$wiersz[2].'</strong> - '.$wiersz[3].'<br />Prowadzi: <strong>'.$wiersz[4].'</strong><br/><br/>';
  20. }
  21.  
  22. }
  23.  
  24. ?>


Ten post edytował marian2299 14.07.2009, 12:27:10


--------------------
film edit student
Go to the top of the page
+Quote Post
piotrooo89
post
Post #11


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




  1. <?php
  2. $zapytanie = "SELECT * FROM `ram_$dzien` ORDER BY `start` ASC";
  3. $wynik = mysql_query($zapytanie) or die(mysql_error());
  4.  
  5. $ifek = mysql_num_rows($wynik);
  6. $godzina = date("G:i");
  7.  
  8. if ($ifek == 0)
  9. {
  10.    echo "Nic dzisiaj nie gramy";
  11. }
  12. else
  13. {
  14.    while($wiersz = mysql_fetch_array($wynik))
  15.    {
  16.        if (($wiersz[1] >= $godzina) AND ($godzina >= $wiersz[2]))
  17.        {
  18.            echo '<font color="red"><strong>'.$wiersz[1].'-'.$wiersz[2].'</strong> - '.$wiersz[3].'<br />
  19.            Prowadzi: <strong>'.$wiersz[4].'</strong><br/><br/></color>';
  20.        }
  21.        else
  22.        {
  23.            echo '<strong>'.$wiersz[1].'-'.$wiersz[2].'</strong> - '.$wiersz[3].'<br />
  24.            Prowadzi: <strong>'.$wiersz[4].'</strong><br/><br/>';
  25.        }
  26.    }
  27. }
  28. ?>


i teraz powiedz mi do czego odwoluje się $wiersz[1] i $wiersz[2]. do godziny rozpoczęcia i zakończenia? jeśli tak to pokombinuj z warunkiem.


--------------------
Go to the top of the page
+Quote Post
marian2299
post
Post #12





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Wiersz[1] to godzina rozpoczęcia XX:XX, a wiersz[2] zakończenia.


--------------------
film edit student
Go to the top of the page
+Quote Post
Pr0100
post
Post #13





Grupa: Zarejestrowani
Postów: 114
Pomógł: 24
Dołączył: 18.01.2008
Skąd: Warszawa

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


Cytat
Pr0100 -> uzasadnij , w "" zamiast wyświetlić $nazwa_zmiennej wyświetla jej wartość.


z przyzwyczajenia nie stosuje echo "$tablica[klucz]", napisałem post minute po tobie, nie twierdze że twój sposób jest gorszy od mojego.

Ten post edytował Pr0100 14.07.2009, 13:14:33


--------------------
Go to the top of the page
+Quote Post
prszakal
post
Post #14





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 24.03.2008

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


1) Nie należy mieszać kodu PHP z kodem HTML
2) Nie dość, że mieszasz PHP z HTML to jeszcze używasz znaczników, które zostały już zdeprecjonowane
3) Do sprawdzenia zawartości tablicy zastosuj print_r lub var_dump
4)
Cytat
Teraz zrobiło się coś dziwnego.
Audycje wyświetliły się, ale:
12:20-14:50 - BABCIA
Prowadzi: asdasd

16:50-19:40 - asdas
Prowadzi: MAMKA
A miało być odwrotnie. Audycje trwające miały być czerwone.
Jak usunę nadal nie pokazuje "Nic dzisiaj nie gramy"
To są właśnie uroki nieprawidłowych rozwiązań.

pozdrawiam
prszakal

Ten post edytował prszakal 14.07.2009, 13:55:02
Go to the top of the page
+Quote Post
marian2299
post
Post #15





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Sory, ale każdy podaje inny sposób mówiąc "ten jest najlepszy". A nikt nie daje rozwiązania, tylko mieszacie...


--------------------
film edit student
Go to the top of the page
+Quote Post
piotrooo89
post
Post #16


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




podałem Ci rozwiązanie jak na tacy. dopisałem pobaw się warunkiem wyświetlania godziny (przez pobaw rozumiem, zobacz jak działają większe, mniejsze, równe).


--------------------
Go to the top of the page
+Quote Post
marian2299
post
Post #17





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


  1. <?php
  2. $dni = array('Mon' => 'poniedzialek', 'Tue' => 'wtorek', 'Wed' => 'sroda', 'Thu' => 'czwartek', 'Fri' => 'piatek', 'Sat' => 'sobota', 'Sun' => 'niedziela');
  3. $dzien = $dni[date('D')];
  4. $query = mysql_query("SELECT * FROM ram_".$dzien." ORDER BY start DESC");
  5. $godzina = date("G:i");
  6. $ifek = mysql_num_rows($query);
  7.  
  8.  
  9. if ($ifek == 0)
  10. {
  11.  
  12.   echo "Nic dzisiaj nie gramy";
  13.  
  14. } else {
  15.    while($wiersz = mysql_fetch_array($query))
  16.      {
  17.          if (($godzina >= $wiersz[1]) AND ($godzina < $wiersz[2]))
  18.            {
  19.               echo '<font color="#FF0000"><strong>'.$wiersz[1].'-'.$wiersz[2].'</strong> - '.$wiersz[3].'<br />
  20.                     Prowadzi: <strong>'.$wiersz[4].'</strong><br/><br/></font>';
  21.             } else {
  22.               echo '<strong>'.$wiersz[1].'-'.$wiersz[2].'</strong> - '.$wiersz[3].'<br />
  23.                     Prowadzi: <strong>'.$wiersz[4].'</strong><br/><br/>';
  24.             }
  25.       }
  26. }
  27. ?>

Tak wygląda kod, praktyka:
8:00-10:00 - MaxiPoranek z MaxiStacją!
Prowadzi: DJ Bąbel

15:50-18:00 - Go Poznań! Go!
Prowadzi: Gural


11:00-14:00 - W rytm Brequela
Prowadzi: Kariu$

Czemu audycja o 11 jest po audycji o 15 ?

Jak zmieniłem DESC na ASC to było:

15:50-18:00 - Go Poznań! Go!
Prowadzi: Gural


11:00-14:00 - W rytm Brequela
Prowadzi: Kariu$

8:00-10:00 - MaxiPoranek z MaxiStacją!
Prowadzi: DJ Bąbel

Ten post edytował marian2299 15.07.2009, 15:01:10


--------------------
film edit student
Go to the top of the page
+Quote Post
Kojak
post
Post #18





Grupa: Zarejestrowani
Postów: 70
Pomógł: 5
Dołączył: 11.09.2007
Skąd: Kielce

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


A pole start w bazie danych jakiego masz typu? Jeśli Varchar to wszystko jasne.. on nie sortuje według znaków tylko według kodu ASCII danego znaku. I dlatego tak się dzieje. W tym przypadku masz dwa wyjścia: albo zmienić kolumnę na typu INT ewentualnie musisz otrzymane wyniki posortować.
Go to the top of the page
+Quote Post
marian2299
post
Post #19





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


No nie wierzę. Jesteś wielki. Tylko sortowanie w drugą stronę zmienię. Tyle się męczyłem. Dałbym ci z 10 pomógł.
Dobra dzięki wszystkim, już was "nagradzam".


--------------------
film edit student
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 Aktualny czas: 19.08.2025 - 17:56