Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zapytaniem
Forum PHP.pl > Forum > PHP
SN@JPER^
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. ?>
plurr
zobacz jakie masz typy w bazie, moze to nie sa inty tylko enumy. Zdebuguj wynik/tablice przed petla, print_r/vardump itp
mike
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()).
SN@JPER^
mysql_num_rows(); wyświetla 1
thm
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
SN@JPER^
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
thm
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') && ...
SN@JPER^
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
Kamson
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.
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.