Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] PDO WHERE data = ?
Forum PHP.pl > Forum > Przedszkole
sexigrzes
Mam taki problem.

Chciałbym wyciągać newsy gdzie data równa się podanej przeze mnie...
i jakoś mi nie wychodzi.

Mam date w bazie w formacie rrrr-mm-dd

Daje takie cos:
  1. $data = date('Y')."-".date('m')."-".$_GET['id'];
  2.  
  3. $zapytanie2 = $pdo -> query('SELECT * FROM news WHERE data = '.$data.'');
  4. $row2 = $zapytanie2 -> fetch();
  5.  


i nie chce mi zwrócić newsów, mimo że na pewno mam takie w bazie... jakies pomysły co robie źle? ;<
crackcomm
Cytat(sexigrzes @ 21.12.2010, 16:11:08 ) *
Mam taki problem.

Chciałbym wyciągać newsy gdzie data równa się podanej przeze mnie...
i jakoś mi nie wychodzi.

Mam date w bazie w formacie rrrr-mm-dd

Daje takie cos:
  1. $data = date('Y')."-".date('m')."-".$_GET['id'];
  2.  
  3. $zapytanie2 = $pdo -> query('SELECT * FROM news WHERE data = '.$data.'');
  4. $row2 = $zapytanie2 -> fetch();
  5.  


i nie chce mi zwrócić newsów, mimo że na pewno mam takie w bazie... jakies pomysły co robie źle? ;<

może nie podajesz $_GET['id'] ?
Poza tym. lepiej chyba tak:
  1.  
  2. $query = $pdo->quoteInto('SELECT * FROM news WHERE data = ?', date('Y-m-').$_GET['id']);
  3. $zapytanie2 = $pdo->query($query);
  4. $row2 = $zapytanie2->fetch();


A w bazie lepiej używać TIMESTAMP.
Mephistofeles
A jeszcze lepiej użyć prepare i bindParam.
crackcomm
Cytat(Mephistofeles @ 21.12.2010, 16:32:54 ) *
A jeszcze lepiej użyć prepare i bindParam.

dokładnie, ale nie dla takiego zapytania ;p nie trzeba, za dużo syfu się robi - chociaż! jak trzeba będzie dalej coś dopisać to lepiej używać prepare. W tym wypadku raczej nie jest to konieczne. KISS ;*
sexigrzes
no wlasnie $data wychodzi poprawnie bo sobie ja wyswietlam...


  1. $query = $pdo->quoteInto('SELECT * FROM news WHERE data = ?', date('Y-m-').$_GET['id']);
  2. $zapytanie2 = $pdo->query($query)


nie wiem czy tu blad jest czy ten ? celowo, ale próbując


  1. $query = $pdo->quoteInto('SELECT * FROM news WHERE data = date('Y-m-').$_GET['id']);
  2. $zapytanie2 = $pdo->query($query)


tez nie chce wyswietlac... nie wiem czemu :/ data poprawnie w formie DATE, w bazie 50razy srpawdzalem ze sa wpisy ktore moze wyswietlic, daty sa identyczne w bazie i z geta
crackcomm
Kod
        
$query = $pdo->quoteInto('SELECT * FROM news WHERE data = ?', date('Y-m-').$_GET['id']);    
$zapytanie2 =  $pdo->query($query);
$row2 = $zapytanie2->fetch();
var_dump($row2);


Co wyświetla ?
sexigrzes
Fatal error: Call to undefined method PDO::quoteInto() in D:\www\strona\aktualnosci.php on line 19

  1. $query = $pdo->quoteInto('SELECT * FROM news WHERE data = ?', date('Y-m-').$_GET['id']);
  2. $zapytanie2 = $pdo->query($query);
  3. $row2 = $zapytanie2->fetch();
  4. var_dump($row2);



19 linijka to

  1. $query = $pdo->quoteInto('SELECT * FROM news WHERE data = ?', date('Y-m-').$_GET['id']);


spróbowałem

  1. $data = date('Y-m-').$_GET['id'];
  2.  
  3. $zapytanie = $pdo -> query('SELECT * FROM news WHERE data Like "'.$data.'"');


i działa
Mephistofeles
Ta metoda to nie jest przypadkiem z Zend Frameworka? Użyj prepare, może to armata na komara, ale warto się przyzwyczaić.
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.