Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z zapytaniem
SN@JPER^
post 18.10.2008, 18:23:34
Post #1





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


Witam,

próbuje wyciagnąć jeden rekord, ale w czymś jest błąd - nie wyświetla nic:

  1. <?php
  2. $sql = "SELECT * FROM timetable WHERE points1=0 and points2=0 and type=1 ORDER BY queue DESC LIMIT 1";
  3.      $query = mysql_query($sql);
  4.      while($fetch = @mysql_fetch_array($query))
  5.      {
  6.             $data_ex = explode('.', date('j.m.Y; H:i', $fetch['time']));//zmieniamy date...
  7.            
  8.              //********WYSWIETLAMY AKTUALNE MECZE DO TYPOWANIA*********
  9.              if($data_ex[0]>=date('j') && $data_ex[1]>=date('m') && $data_ex[2]>=date('Y'))
  10.              {
  11.                echo $fetch['queue'].'<br />';
  12.              }
  13.      }
  14. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
plurr
post 18.10.2008, 18:28:16
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


zobacz jakie masz typy w bazie, moze to nie sa inty tylko enumy. Zdebuguj wynik/tablice przed petla, print_r/vardump itp

Ten post edytował plurr 18.10.2008, 18:28:32


--------------------
Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe.

Albert Einstein
Go to the top of the page
+Quote Post
mike
post 18.10.2008, 18:29:43
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Wygoń małpy z kodu to oddadzą Ci komunikaty o błedach.
A błędem najprawdopodobniej jest to, że pusty zbiór wyników przekazałeś do funkcji mysql_fetch_array(). Sprawdź najpierw czy są jakieś wyniki (mysql_num_rows()).
Go to the top of the page
+Quote Post
SN@JPER^
post 18.10.2008, 18:36:00
Post #4





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


mysql_num_rows(); wyświetla 1
Go to the top of the page
+Quote Post
thm
post 18.10.2008, 18:38:15
Post #5





Grupa: Zarejestrowani
Postów: 52
Pomógł: 10
Dołączył: 6.10.2008
Skąd: Lublin

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


wypluj sobie $fetch['time']; i pokaż jak wygląda

acha.
jak explodujesz 'j.m.Y; H:i' po kropce to w $out[2] masz 'Y; H:i' a nie sam rok

Ten post edytował thm 18.10.2008, 18:40:57
Go to the top of the page
+Quote Post
SN@JPER^
post 18.10.2008, 18:46:41
Post #6





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


Cytat(plurr @ 18.10.2008, 19:28:16 ) *
zobacz jakie masz typy w bazie, moze to nie sa inty tylko enumy. Zdebuguj wynik/tablice przed petla, print_r/vardump itp







TIME WYŚWIETLA(Oczywiscie echowałem przed warunkiem):
11209218401

Gdy z warunku wyrzuciłem: && $data_ex[2]>=date('Y') i tak nic nie wyświetla

Ten post edytował SN@JPER^ 18.10.2008, 18:43:41
Go to the top of the page
+Quote Post
thm
post 18.10.2008, 18:50:46
Post #7





Grupa: Zarejestrowani
Postów: 52
Pomógł: 10
Dołączył: 6.10.2008
Skąd: Lublin

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


po pierwsze:
twoja data to: string(10) "25-11-1916" . Nie za stary ten mecz? ; ]

po drugie:
Kod
if (date('j', $fetch['time'])> date('j') && ...
Go to the top of the page
+Quote Post
SN@JPER^
post 18.10.2008, 18:56:08
Post #8





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


Dobra to zamiast pisać tyle kodu jak można to zastąpic jednym zapytaniem?

Potrzebuje po prostu pobrać numer kolejki, która zostanie rozegrana wedlug:

points1=0 (czyli wynik gospodarza)
points2=0 (wynik gości)
type=1 (mecz ligowy)


Próbowałem to tak zrobić i dalej kodem PHP, ale widze jakoś mi nie wyszło:

SELECT * FROM timetable WHERE points1=0 and points2=0 and type=1 ORDER BY queue DESC LIMIT 1
Go to the top of the page
+Quote Post
Kamson
post 19.10.2008, 00:45:00
Post #9





Grupa: Zarejestrowani
Postów: 57
Pomógł: 3
Dołączył: 23.10.2006
Skąd: Warszawa

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


Z całego tego kodu zrozumiałem że chcesz wyciągnąć numery kolejek meczy nierozegranych? czyli od dziś do ~

to powinno zadziałać:

  1. <?php
  2. $result = mysql_query("SELECT `queue` FROM `timetable` WHERE points1=0 AND points2=0 AND type=1 AND time>=UNIX_TIMESTAMP(); ORDER BY `queue` DESC");
  3. while ($row = mysql_fetch_array($result)) {
  4.    print $row['queue'];
  5. }
  6. ?>


ale... UNIX_TIMESTAMP chyba powinien być zapisany w polu int(11)... przy 10 brakuje jednej cyfry i wszystkie mecze są troszkę przeterminowane.
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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 19:56