Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przedział rekordów z mysql
Forum PHP.pl > Forum > Bazy danych > MySQL
ceo
w bazie danych mysql mam pole z data i we formularzu mam dwa pola data_zam i data_zam2 , pierwsze okresla przedzial daty od a drugie do .

jak wyciagnac te dane ?
mam tak :

  1. <?php
  2.  
  3. $zapytanie=&#092;"WHERE data_zam>=$_POST[data_zam] AND data_zam<=$_POST[data_zam2]\";
  4.  
  5. ?>


i caly czas pokazuje mi ze nie ma rekordow
mike
Mam nadzieję, że to tylko fragment zapytania winksmiley.jpg
Powinno być:
  1. SELECT cośtam FROM cośtam WHERE cośtam

Napisz jaki masz typ tych pól w bazie gdzie trzymasz czasy. Może masz coś z typami i ci je źle porównuje.
Osobiście polecam trzymać datę jako znacznik czasu Unix'a: łatwo porównywać i zapisywać w różnych formatach za pomocą funkcji date() i innych z tej rodziny.
ceo
$zmienna to oczywiscie czesc wlasciwego zapytania biggrin.gif

dane w bazie sa typu date
i w formularzu mozliwe jest wprowadzenie daty tylko w takim formacie jak jest w bazie czyli 0000-00-00
mike
Nie jestem expertem jeżeli chodzi o MySql'a ale możesz spróbować tak:
  1. <?php
  2. $zapytanie=&#092;"WHERE data_zam>='\".$_POST['data_zam'].\"' AND data_zam<='\".$_POST['data_zam2'].\"'\";
  3. ?>

Jak nie ujmiesz $_POST[ 'data_zam'] i $_POST['data_zam2'] w "ciapki" to może się posypać porównywanie stringów.
P.S. Ja bym na twoim miejscu zmienił dane na czas Unix'a, liczby o wiele łatwiej porównywać i manipulować nimi niż stringami.
BzikOS
  1. <?php
  2. $zapytanie=&#092;"WHERE data_zam BETWEEN '\" . $_POST['data_zam'] . \"' AND '\" . $_POST['data_zam2'] . \"'\";
  3. ?>


Polecałbym jednak przeprowadzać walidację danych z formularza.
hwao
php pocz -> Bazy -> MySQL
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.