Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » DYD 07:40
 » steve 07:39
 » JE Jacaw 07:38
 » john565 07:37
 » @GUTEK@ 07:37
 » ghost12 07:32
 » XepeR 07:29
 » Zbyl 07:25
 » MARtiuS 07:22
 » patinka 07:21
 » m&m 07:19
 » myszon 07:14
 » Robak 07:01
 » Demo 06:56
 » Dhoine 06:52
 » Ziomek 06:51
 » DJopek 06:48
 » Dexter 06:45
 » PeKa 06:37
 » RoBakk 06:36

 Dzisiaj przeczytano
 41142 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2024
A R C H I W A L N A   W I A D O M O Ś Ć
    

Pytanie o php/mysql - jak wprowadzic dobrze date do bazy danych , kubazzz 26/01/07 20:35
W formularzu jest przekazywana data w formacie DD-MM-YYYY jako zmienna tekstowa.
Nie wiem jak poprawnie wprowadzic taka date do bazy mysql [tam jest format YYYY-MM-DD].
Potem przy odczycie z bady danych ta data musi znowu byc przeksztalcona na format DD-MM-YYYY.


mam takie zapytanie
INSERT INTO tabela (title, data) VALUES (' ". $_POST['tytul'] ." ' , <pustka> )

Nie rozumiem tego w ogole jak to przeksztalcic, a wszystkie kursy php sa do bani bo sie rozwodza po drodze na milion tematow ktore mnie nie interesuja.
Dlatego prosze o jakies wytlumaczenie co mam zrobic, jak i dlaczego wlasnie tak.

SM-S908

  1. po pierwsze , Grocal 26/01/07 20:54
    na Boga nigdy nie wrzucaj danych z $_POST $_GET bezposrednio do zapytan sql. Ktos moglby w te zmienna "wstrzyknac" kawalek kodu sql i dupa blada. Tak wiec zapamietaj swieta zasade programisty php - nie ufaj uzytkownikom i sprawdzaj wszystko co sie wprowadza z zewnatrz. W przypadku danych wpisywanych do zapytan - zawsze je "escape'uj".

    Co do zamiany daty na format zgodny z mysql, to stworz sobie dwie funkcje np date_html2mysql($pDate) i date_mysql2html($pDate), gdzie pobierzesz dane, sprawdzisz, zamienisz i wyplujesz na wyjsciu w odpowiednim formacie, np tak:

    function date_html2mysql($pDate)
    {
    if (ereg ("([0-9]{2})-([0-9]{2})-([0-9]{4})", $pDate, $regs))
    { return $regs[3].'-'.$regs[2].'-'.$regs[1]; } else
    return '';
    }

    Na pewno, na razie, w ogóle...
    Naprawdę, naprzeciwko, stąd...
    Ortografia nie gryzie!

    1. hmm , kubazzz 26/01/07 21:08
      dokladniej to ja mam to zapisane tak :
      $add = "INSERT INTO $tabela ...."
      a potem
      mysql_query ($add)

      zasadniczo skrypt ma wczesniej weryfikacje hasla, ktore znam tylko ja.
      oczywiscie strzezonego Pan Bog strzeze wiec i chetnie bym to ulepszyl, ale nie do konca rozumiem co znaczy escapeowac:D

      SM-S908

      1. hmm , _oLo_1984 26/01/07 21:18
        zapewne grocalowi chodzi, o filtrowanie zmiennych z $_POST i $_GET. Warto sie zapoznać z tematem, bo chodzi o bezpieczeństwo. Proponuje poczytać na temat mysql_escape_string(), addslashes() oraz co to magic_quotes.

        awake

  2. hmm , _oLo_1984 26/01/07 20:57
    można to zrobić na kilka sposobów - 2 najprostrze to zmień format daty w formularzu lub jezeli chodzi o bierząca date to ustaw sobie date("Y-m-d"); mozesz też mienić typ pola w bazie na varchar i tam trzymać datę w formacie, który cie interesuje.
    Kup sobie jakaś porządną ksiązke do php&mysql ! Nie zaczaisz czytając jedynie darmowe kursy na necie. Zresztą tu potrzebna jest logika programowania - na pałe nic nie zrobisz.
    Proponuje zaczac odwiedzac forum.php.pl
    pozdrawiam

    awake

    1. hmm , kubazzz 26/01/07 21:04
      mam ksiazke calkiem porzadna, ale kurde 80% rzeczy mnie nie interesuje i sie mecze analizujac przyklady.
      ogolnie jestem bystry, mialem stycznosc z programowaniem, ale z php niewiele, mysql tez dopiero poznaje.
      Nie mam czasu przerobic calej ksiazki ktora ma 800 stron. Bede sie w to stopniowo zaglebial, ale chwilowo potrzebuje prostych rozwiazan.
      Mam problemy ze skladnia i z pewnymi niansami.

      SM-S908

    2. aha , kubazzz 26/01/07 21:32
      varchar w bazie nie bardzo mi pasuje.

      SM-S908

      1. ... , _oLo_1984 26/01/07 21:44
        ciekawym rozwiązaniem jest funkcja, którą kolega wyżej ci napisał - wykorzystaj ją.


        ps. czemu varchar w bazie niebardzo pasuje ?

        awake

        1. sortowanie mu siadzie , Grocal 26/01/07 21:47
          DD-MM-YYYY ciezko jest posortowac, juz latwiej varchar YYYY-MM-DD

          Na pewno, na razie, w ogóle...
          Naprawdę, naprzeciwko, stąd...
          Ortografia nie gryzie!

          1. sorry , Grocal 26/01/07 21:48
            sortowanie kubazzowi siadzie... przepraszam, ze mowienie w 3 osobie...

            Na pewno, na razie, w ogóle...
            Naprawdę, naprzeciwko, stąd...
            Ortografia nie gryzie!

          2. wlasnie , kubazzz 26/01/07 22:02
            ja zasadniczo mam inne pole kluczowe, ale potrzebuje tez sortowania po dacie.
            dlatego wole juz trzymac to jako date w bazie danych.

            SM-S908

            1. No kurde , pachura 27/01/07 00:03
              "Miałeś styczność z programowaniem" a nie umiesz napisać prostej funkcji przekształcającej string YYYY-MM-DD na DD-MM-YYYY i odwrotnie? No to porywasz się z motyką na słońce.

              W tabeli trzymaj pole typu date, zaś samą wartość przekształcaj przed wysłaniem i po odczytaniu z bazy, tak jak napisał Grocal. Dla ułatwienia, możesz zastosować zwykłe substr (wycinanie fragmentu stringa) zamiast wyrażeń regularnych.

              1. juz wiem , kubazzz 27/01/07 00:17
                jak to zrobic.
                algorytm nie jest problemem, tylko probleme jest skladnia php i mysql. sie okazalo, ze nie ma wiekszego problemu. format wpisywania w formularzy jest mi obojetny wiec zostanie taki jaki przyjumje mysql YYYY-MM-DD, a odczyt z bazy danych to juz jest DATE_FORMAT i po klopocie.
                Ale to nie wisi w powietrzu, trzeba sie tego dowiedziec:D A ksiazka nie odpowie dopoki jej calej nie przeczytasz;)

                SM-S908

    
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL