Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/MYSQL] Łączenie w mktime, dodanie do bazy, warunek...
Forum PHP.pl > Forum > Przedszkole
MeTeorek
Witam.

Na wstępie witam wszystkich i mam nadzieję, że zagoszczę tu na dłużej. Liczę na życzliwość i pomoc innych użytkowników.

W PHP jestem samoukiem lecz coś tak umiem. Utkwiłem z pewnym problemem. Od razu zobrazuje:

Tworzę serwis koszykarski, a właściwie nową wersję www. Pod logiem umieszczam panel wyników zbudowany w sposób:

Rozegrane | Aktualnie grany (tylko 1 mecz) | Planowane

Chcę to wszystko zrobić za pomocą warunków i danych wprowadzonych w formularzu, by tylko wypełnić a potem dodać wynik. Na innym forum stworzyłem topic, jednak pomoc sie skończyła oto on: KLIK.

Chodzi o wykorzystanie funkcji mktime w polu z wypełnianianiem daty. Mogę stworzyć 1 pole i wypisać zgodnie z kolejnością mktime ale to nie wygodne (z resztą coś źle wpisałem bo źle wygenerował ale ważne, że coś smile.gif ) Chcę to rozbić na 5 pół: Dzień, Miesiąc, Rok, Godzina, Minut... Sekundy automatycznie na 0 smile.gif Problem w tym, że nie wiem jak to wykrozystać... W wyżej poruszanym temacie w ostatnim poście wstawiłem kod z próbami ale nic nie dawało... Miałem zrobić by z zmiennych w formularzu

Kod
<tr>
    <td align='right'>".$locale['EWS105']."</td>
    <td><input type='text' name='stats_dzien' value='$stats_dzien' class='textbox' style='width:22px;'>, <input type='text' name='stats_miesiac' value='$stats_miesiac' class='textbox' style='width:22px;'>, <input type='text' name='stats_rok' value='$stats_rok' class='textbox' style='width:48px;'>, <input type='text' name='stats_godzina' value='$stats_godzina' class='textbox' style='width:22px;'>, <input type='text' name='stats_minut' value='$stats_minut' class='textbox' style='width:22px;'></td>
    </tr>


Potem najpierw tworzyło z nich mktime a potem dodawło do bazy lecz nie chce się dodać. Chodzi o to by w prosty sposób dla osób niewtajemniczonych zrobić panel by mogli dodać mecz.

P.S No i sam później warunek by się dane wyświetlały... Dana kolumna ma się wyświetlać od daty podanej w formularzu przez 2 godzint...


Z góry dziękuję i pozdrawiam
nowotny
Hmm... no i gdzie tu problem...? przecież to proste... :/

Generalnie coś takiego:
  1. <?php
  2. $timestamp=mktime($_POST['stats_godzina'],$_POST['stats_minut'],0,$_POST['stats_miesiac'],$_POST['stats_dzien'],$_POST['stats_rok']);
  3. ?>


Jeśli chodzi o dodawanie dat to chyba lepiej jest użyć pól <SELECT> niż <INPUT>...
MeTeorek
Też miałem w planach zmienić na select... Tak więc to timestamp dodać tylko do warunku z wyświetlaniem czy jakoś do formularza? Oto fragment kodu pliku z formularzem

Kod
if (isset($step) && $step == "delete") {
$result = dbquery("DELETE FROM ".$db_prefix."warstats WHERE warstats_id='$stats_id'");
opentable($locale['EWS102']);
echo "<center><br>
".$locale['EWS002']."<br><br>
<a href='eXtreme_warstats_admin.php'>".$locale['EWS003']."</a><br><br>
<a href='".ADMIN."index.php'>".$locale['EWS004']."</a><br><br>
</center>\n";
closetable();
} else {
    if (isset($_POST['save_cat'])) {
        $stats_gospodarze = stripinput($_POST['stats_gospodarze']);
        $stats_kraj = stripinput($_POST['stats_kraj']);
        $stats_goscie = stripinput($_POST['stats_goscie']);
        $stats_kraj2 = stripinput($_POST['stats_kraj']);
        $stats_data = stripinput($_POST['stats_data']);
        $stats_liga = stripinput($_POST['stats_liga']);
        $stats_mapa1 = stripinput($_POST['stats_mapa1']);
        $stats_punkty11 = stripinput($_POST['stats_punkty11']);
        $stats_punkty12 = stripinput($_POST['stats_punkty12']);
        $stats_screen11 = stripinput($_POST['stats_screen11']);
        $stats_screen12 = stripinput($_POST['stats_screen12']);
        $stats_mapa2 = stripinput($_POST['stats_mapa2']);
        $stats_punkty21 = stripinput($_POST['stats_punkty21']);
        $stats_punkty22 = stripinput($_POST['stats_punkty22']);
        $stats_screen21 = stripinput($_POST['stats_screen21']);
        $stats_screen22 = stripinput($_POST['stats_screen22']);
        $stats_opis = stripslashes($_POST['stats_opis']);
        $stats_dzien = stripinput($_POST['stats_dzien']);
        $stats_miesiac = stripinput($_POST['stats_miesiac']);
        $stats_rok = stripinput($_POST['stats_rok']);
        $stats_godzina = stripinput($_POST['stats_godzina']);
        $stats_minut = stripinput($_POST['stats_minut']);
    if (isset($step) && $step == "edit") {
        $result = dbquery("UPDATE ".$db_prefix."warstats SET warstats_gospodarze='$stats_gospodarze', warstats_kraj='$stats_kraj', warstats_goscie='$stats_goscie', warstats_kraj2='$stats_kraj2', warstats_data='$stats_data', warstats_liga='$stats_liga', warstats_mapa1='$stats_mapa1', warstats_punkty11='$stats_punkty11', warstats_punkty12='$stats_punkty12', warstats_screen11='$stats_screen11', warstats_screen12='$stats_screen12', warstats_mapa2='$stats_mapa2', warstats_punkty21='$stats_punkty21', warstats_punkty22='$stats_punkty22', warstats_screen21='$stats_screen21', warstats_screen22='$stats_screen22', warstats_opis='$stats_opis', warstats_dzien='$stats_dzien', warstats_miesiac='$stats_miesiac', warstats_rok='$stats_rok', warstats_godzina='$stats_godzina', warstats_minut='$stats_minut', WHERE warstats_id='$stats_id'");
    } else {
        $result = dbquery("INSERT INTO ".$db_prefix."warstats VALUES('',  '$stats_gospodarze', '$stats_kraj', '$stats_goscie', '$stats_kraj2', '$stats_data', '$stats_liga', '$stats_mapa1', '$stats_punkty11', '$stats_punkty12', '$stats_screen11', '$stats_screen12', '$stats_mapa2', '$stats_punkty21', '$stats_punkty22', '$stats_screen21', '$stats_screen22', '$stats_opis', '$stats_dzien', '$stats_miesiac', '$stats_rok', '$stats_godzina', '$stats_minut')");
    }
    header("Location:eXtreme_warstats_admin.php");
    }

    if (isset($step) && $step == "edit") {
        $result = dbquery("SELECT * FROM ".$db_prefix."warstats WHERE warstats_id='$stats_id'");
        $data = dbarray($result);
        $stats_kraj = $data['warstats_kraj'];
        $stats_gospodarze = $data['warstats_gospodarze'];
        $stats_kraj2 = $data['warstats_kraj2'];
        $stats_goscie = $data['warstats_goscie'];
        $stats_data = $data['warstats_data'];
        $stats_liga = $data['warstats_liga'];
        $stats_mapa1 = $data['warstats_mapa1'];
        $stats_punkty11 = $data['warstats_punkty11'];
        $stats_punkty12 = $data['warstats_punkty12'];
        $stats_screen11 = $data['warstats_screen11'];
        $stats_screen12 = $data['warstats_screen12'];
        $stats_mapa2 = $data['warstats_mapa2'];
        $stats_punkty21 = $data['warstats_punkty21'];
        $stats_punkty22 = $data['warstats_punkty22'];
        $stats_screen21 = $data['warstats_screen21'];
        $stats_screen22 = $data['warstats_screen22'];
        $stats_opis = $data['warstats_opis'];
        $stats_dzien =  $data['warstats_dzien'];
        $stats_miesiac =  $data['warstats_miesiac'];
        $stats_rok =  $data['warstats_rok'];
        $stats_godzina =  $data['warstats_godzina'];
        $stats_minut =  $data['warstats_minut'];
        $formaction = FUSION_SELF."?step=edit&stats_id=".$data['warstats_id'];
    opentable($locale['EWS107']);
    } else {
        $stats_kraj = ""; $stats_gospodarze = ""; $stats_kraj2 = ""; $stats_goscie = ""; $stats_data= ""; $stats_liga= ""; $stats_mapa1= ""; $stats_punkty11= ""; $stats_punkty12= ""; $stats_screen11= ""; $stats_screen12= ""; $stats_mapa2= ""; $stats_punkty21= ""; $stats_punkty22= ""; $stats_screen21= ""; $stats_screen22= ""; $stats_opis= ""; $stats_dzien= ""; $stats_miesiac= ""; $stats_rok= ""; $stats_godzina= ""; $stats_minut= "";
        $formaction = FUSION_SELF;
    opentable($locale['EWS101']);
    }
    echo "<form name='addcat' method='post' action='$formaction'>
...

(po "..." rozpoczyna sie formularz, a w nim najważniejszy fragment dałem post wyżej)

Jeśli do warunku to potem jak go stworzyć według tej zmiennej?

Pozdrawiam
nowotny
Hmm... wiesz w ogóle do czego służy mktime" title="Zobacz w manualu PHP" target="_manual...?

Jak widze to w bazie masz to i tak rozbite na poszczególne kolumny więc nie rozumiem po co ci timestamp... :/

Napisz jasno, w jednym zdaniu co dokładnie chcesz uzyskać...? wyświetlanie danych rekordów wg. daty i czasu, czy co...?
MeTeorek
Wiem do czego służy (już mi to tłumaczono)

Tworzę panel wyników i chcę by na głównej wyświetlał się mecz jeśli w danym momencie leci. Czyli jeśli wpisze w formularzu 02.02.2008 20:15 to o 20:15 na głównej żeby sie wyświetlił dany rekord i byl wyświetlany przez 2 godziny. Mam rozbite na kolumny poszczególne pola ale jak je teraz zrobić na mktime? Przy wstawianiu warunku czy jakoś przy formularzu?
nowotny
Cytat(MeTeorek @ 2.02.2008, 15:52:02 ) *
Mam rozbite na kolumny poszczególne pola ale jak je teraz zrobić na mktime?

Ale do czego ci ten mktime...? Wg. mnie do niczego on ci nie jest potrzebny... pokaż lepiej jak wyświetlasz ten panel wyników...
MeTeorek
Kod
$result = dbquery("SELECT * FROM ".$db_prefix."warstats WHERE warstats_czas>'".(time()-7200)."'");


W warstats_czas zapisuje się data z formualrza przetworzona przez mktime... Masz lepszy pomysł by rekord wyświetlał
się po spełnieniu warunku czasu? Zarzucę może screen z mojego layouta by było jaśniej:

SCREEN

Po lewej widzimy panel meczy rozegranych (nadam warunek, że jeśli czas ich rozegrania będzie mniejszy to mają się tam rekordy wyświetlać wg. ID)
Na środku panel meczu aktualnie granego. Ma się on wyświetlać od daty podanej w formularzu i wyświetlać przez 2 godziny.
A po prawej mecze planowane, jeśli ich data jest "większa" niż serwera.

Chodzi mi glównie jak wykonać funkcję mktime w formularzu... Prosiłbym o wskazanie miejsc gdzie mam to wstawić (wcześniej podałem kod)

Męczę sie z tym już 2 tydzień...

Pozdrawiam
nowotny
Cytat(MeTeorek @ 2.02.2008, 16:39:37 ) *
Masz lepszy pomysł by rekord wyświetlał
się po spełnieniu warunku czasu?

Hmm... może nie lepszy ale taki który nie powoduje duplikacji danych (której powinno się unikać)... Generalnie rzecz biorąc ja bym zrezygnował z poszczególnych kolumn dla daty i godziny i opierał się tylko na timestampie..

Cytat(MeTeorek @ 2.02.2008, 16:39:37 ) *
Chodzi mi glównie jak wykonać funkcję mktime w formularzu... Prosiłbym o wskazanie miejsc gdzie mam to wstawić (wcześniej podałem kod)

Funcji mktime w formularzu nie używamy w ogóle... ona jest tylko przydatna gdy bezpośrednio zapisujemy już do bazy... wtedy zamieniamy (znane już) datę i godzinę i zapisujemy do bazy...

Albo ja czegoś tu nie rozumiem... :/

Pokaż aktualny kod zapisu danych do bazy...
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.