Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL]Daty przekazywane do skryptu
Forum PHP.pl > Forum > Przedszkole
-marcin-
Witam
Mam formularz w nim między innymi dwa pola: data_od i data_do.
Pzekazuję do skryptu wartości tych obu pól. Skrypt "wkłada" je w zapytanie SQL do bazy MYSQLA.
I niestety nie działa pozostałe pola typy ID, nazwisko, miejscowosci itp dziłaja OK tzn zapytanie dziala jak nalezy. Czy z datami trzeba coś przeliczyć questionmark.gif

A przy okazji zapytam o drugą rzecz: jak w PHP w zapytanie SQL wsadzic znaki "specjalne" ? lub *.
Z góry dzięki
marcin
nowotny
Cytat(-marcin- @ 23.07.2008, 23:56:23 ) *
Mam formularz w nim między innymi dwa pola: data_od i data_do.
Pzekazuję do skryptu wartości tych obu pól. Skrypt "wkłada" je w zapytanie SQL do bazy MYSQLA.
I niestety nie działa pozostałe pola typy ID, nazwisko, miejscowosci itp dziłaja OK tzn zapytanie dziala jak nalezy. Czy z datami trzeba coś przeliczyć questionmark.gif

Pokaż no te pola z datami... i w jaki sposób tam te daty wpisujesz... i jakiego typu pola masz w bazie...?
zapis musi być zgodny z formatem pola w bazie więc pewnie coś trzeba "przeliczyć"...

Cytat(-marcin- @ 23.07.2008, 23:56:23 ) *
A przy okazji zapytam o drugą rzecz: jak w PHP w zapytanie SQL wsadzic znaki "specjalne" ? lub *.

Umieścić w apostrofach/cudzysłowach...
-marcin-
Pola z datami w formularzu: <input type="text" name="data1" id="10" /> - wpisuje na razie recznie w formacie rrrr-mm-dd
Pola w MYSQL typu DATE i w bazie jak patrze zapisuje rrrr-mm-dd.
nowotny
No to pokaż jeszcze zapytanie...
-marcin-
to przykład od 'nospor'a'

  1. <?php
  2. $wh = array(); 
  3.  
  4. if (!empty($_POST['data1'])) 
  5.  $wh[] = "data_1 = '$_POST[data1]'";
  6.  
  7. if (!empty($_POST['data2'])) 
  8.  $wh[] = "data_2 = '$_POST[data2]'";
  9.  
  10. if (!empty($wh)) 
  11.  $where = 'where '.implode(' and ', $wh); 
  12.  
  13. $zapytanie = 'select * from flota '.$where.'order by data_2';
  14. ?>


W formularzu pola od dat oczywiście nazwane data1 i data2.
vokiel
Może tak:
  1. <?php
  2. $wh = array(); 
  3. if (!empty($_POST['data1'])) 
  4.  $wh[] = "data_1 = '".$_POST[data1]."'";
  5.  
  6. if (!empty($_POST['data2'])) 
  7.  $wh[] = "data_2 = '".$_POST[data2]."'";
  8.  
  9. if (!empty($wh)) 
  10.  $where = 'where '.implode(' and ', $wh); 
  11.  
  12. $zapytanie = 'select * from flota '.$where.' order by data_2';
  13. ?>
-marcin-
Dzięki o to chodziło exclamation.gif
aren
Nie:
  1. <?php
  2. $wh[] = "data_1 = '".$_POST[data1]."'";
  3. ?>

A:
  1. <?php
  2. $wh[] = "data_1 = ".mysql_real_escape_string($_POST[data1]).";
  3. ?>

Bo woła o pomstę do nieba. Poza tym, radzę zrobić walidację przesyłanych przez formularz pól.
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.