Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP/MySQL] Pobieranie danych z bazy danych
bemol
post
Post #1





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

Ostrzeżenie: (0%)
-----


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ą :/


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bemol
post
Post #3





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

Ostrzeżenie: (0%)
-----


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.


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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)


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bemol
post
Post #5





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

Ostrzeżenie: (0%)
-----


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? :/


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bemol
post
Post #7





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

Ostrzeżenie: (0%)
-----


gdybym nie miał to bym tego nie napisał smile.gif, a w phpinfo() pisze wyraźnie:
PHP Version 5.1.6


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to widocznie twoja wersja php nie ma tej funkcji tongue.gif

Uzyj strtotime() oraz date()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 00:58