Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/MySQL] Pobieranie danych z bazy danych
Forum PHP.pl > Forum > Przedszkole
bemol
Witam, mam problem.
Mam takie pola w bazie danych:
id(INT)
data(TEXT)
dzien(INT)
miesiac(INT)
rok(INT)
opis(TEXT).
Dodaje np rekordy:
=====1=====
id ='';
data = '12.11.2007';
dzien = '12';
miesiac = '11';
rok = '2007';
opis = 'koncert rymanow';
=====2=====
id ='';
data = '15.8.2007';
dzien = '15';
miesiac = '8';
rok = '2007';
opis = 'koncert krosno';
=====3=====
id ='';
data = '11.8.2007';
dzien = '11';
miesiac = '8';
rok = '2007';
opis = 'koncert rzeszów';

JAK NAPISAC ZAPYTANIE ABY WYCIAGNAC TE REKORDY WG DATY?
  1. <?php
  2. $queryDb = mysql_query("SELECT * FROM koncerty ORDER BY rok,miesiac,dzien DESC");
  3. $queryDb = mysql_query("SELECT * FROM koncerty ORDER BY rok DESC");
  4. ?>

te nie działają :/
nospor
Masz złą strukturę bazdy danych. Jesli jest to w trakcie robienia to kilka uwag:
data(TEXT) - data powinna byc typu DATE a nie text

Po co ci te pola
dzien(INT)
miesiac(INT)
rok(INT)
skoro juz masz pole z datą?

Cytat
te nie działają
tzn?
rok = '2007'; skoro rok to INT to czemu robisz z niego tekst?
bemol
DATA ma typ TEXT z takiego powodu, że:
podczas edycji rekordu z poziomu php wyświetlają się 3 inputy na sama date czyli na:
dzien
miesiac
rok.
Podczas dodawania do bazy rekordow jest tak samo. Zrobilem dodatkowe pola, by podczas edycji rekordu wczytac dane do odpowiednich inputow, z pola typu DATE jest to niemozliwe (no wlasnie, tego pewien nie jestem, ale szukajac nic nie znalazlem :/)

Źle sie wyraziłem, one działają tylko nie dają pożądanego efektu.
nospor
Pole typu DATE czy tez unixtimestamp ma to do siebie, ze istnieje szereg funkcji ktore pozwalają ci z niego wydobyc, dzien, miesiac, rok, godzine, minute, dzien urodzin matki (winksmiley.jpg)
Oj naprawde bardzo kiepsko szukales. Wchodzisz do manuala MYSQL do dzialu date/time functions i masz w czym wybierac. Podobie zresztą po stronie php.

Przerob to szybko na jedno pole typu DATE lub unixtimestamp (jak ci wygodniej)
bemol
pojawił sie problem, a mianowicie:
Fatal error: Call to undefined function date_parse() in /home/poligrafia1/ftp/helmut/forteca/admin/index.php on line 88
  1. <?php
  2. $data = date_parse($Row['data']);
  3. $rok = $data['year'];
  4. $miesiac = $data['month'];
  5. $dzien = $data['day']; 
  6. ?
  7. ?>

co jest nie tak? :/
nospor
No masz napisane czarno na bialym:
"Call to undefined function date_parse()" nie ma takiej funkcji. W manualu skolei masz napisane:
(PHP 5 >= 5.1.3)
czyli zapewne nie masz wlasciwej wersji php.
uzyj strtotime() oraz date()
bemol
gdybym nie miał to bym tego nie napisał smile.gif, a w phpinfo() pisze wyraźnie:
PHP Version 5.1.6
nospor
No to widocznie twoja wersja php nie ma tej funkcji tongue.gif

Uzyj strtotime() oraz date()
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-2024 Invision Power Services, Inc.