Autor | Zpráva | ||
---|---|---|---|
Ex1T Profil |
#1 · Zasláno: 28. 2. 2014, 19:20:34
Ahoj,
snažím sa pochopiť fungovanie času/dátumu v SQL, prečítal som snáď celé google, poskúšal snáď 1337 návodov no nič nefungovalo. Môj problém: Mám script ktorý zaznamená informácie o každom kto príde na určitú stránku a uloží ich do DB (IP, čas, DNS, odkiaľ prišiel a čas). $ip=$_SERVER['REMOTE_ADDR']; $dns=gethostbyaddr($_SERVER['REMOTE_ADDR']); $prehliadac=$_SERVER['HTTP_USER_AGENT']; $referer=$_SERVER['HTTP_REFERER']; $cas=Time(); $query="insert into pristupy (ip,dns,prehliadac,referer,cas) values('$ip','$dns','$prehliadac','$referer',$cas)"; if(mysql_query($query)){ echo "TVOJA IP ADRESA = ".$_SERVER['REMOTE_ADDR'].""; } mysql_close(); Potom mám súbor, kde tieto informácie môžem čítať: $query=mysql_query("select * from pristupy"); if(mysql_num_rows($query)>0){ while($riadok = mysql_fetch_object($query)){ echo "<table border='0' width='700px' align='center'>"; echo "<tbody>"; echo "<tr>"; echo "<td style='text-align: center;'><b>IP</b></td>"; echo "<td style='text-align: center;'><b>DNS</b></td>"; echo "<td style='text-align: center;'><b>Čas</b></td>"; echo "<td style='text-align: center;'><b>Odkiaľ</b></td>"; echo "</tr>"; echo "<tr>"; echo "<td>$riadok->ip</td>"; echo "<td>$riadok->dns</td>"; echo "<td>$riadok->cas</td>"; echo "<td><a href='$riadok->referer' target='_blank'>Odkaz</a></td>"; echo "</tr>"; echo "</tbody>"; echo "</table>"; } } mysql_close(); Ten čas mi robí najväčší problém, v DB sa mi ukladá ako 1393440201 a ja to potrebujem uložiť do formátu deň,mesiac,rok hodina,minúta, teda potrebujem aby sa mi v súbore zobrazilo miesto 1393440201 normálny deň, mesiac, rok hodina,minúta. Nájde sa niekto, kto má chvíľku čas a pohrá sa s tým? PREDOM VEĽKÉ ĎAKUJEM ! |
||
Joker Profil |
#2 · Zasláno: 28. 2. 2014, 19:39:18
Ex1T:
Hledáte funkci DATE_FORMAT. Samozřejmě datový typ příslušného sloupce by měl být DATETIME. Například standardní český formát by byl: SELECT DATE_FORMAT(cas, "%e. %c. %Y %h.%i:%s") AS f_cas FROM tabulka |
||
Fisir Profil |
#3 · Zasláno: 28. 2. 2014, 19:39:32
Reaguji na Ex1Ta:
Místo PHP funkce time() použij MySQL funkci NOW() :
$query="insert into pristupy (ip,dns,prehliadac,referer,cas) values('$ip','$dns','$prehliadac','$referer',NOW())"; mysql_* .
|
||
Ex1T Profil |
#4 · Zasláno: 28. 2. 2014, 19:58:54
Díky moc chalani,
Joker dokázal by si mi to dať priamo do súboru? Teda do echo "<td>$riadok->cas</td>"; akosik sa mi to nedarí, netuším kde robím chybu |
||
Kajman Profil |
#5 · Zasláno: 1. 3. 2014, 13:50:54
Místo dotazu na řádku 1 dáte dotaz i s tím formátováním
select p.*, DATE_FORMAT(p.cas, "%e. %c. %Y %h.%i:%s") AS f_cas from pristupy p echo "<td>{$riadok->f_cas}</td>"; |
||
Ex1T Profil |
Kajman, ďakujem aj keď kód nešiel tak ako má - vypisovalo mi chybu:
Parse error: syntax error, unexpected T_STRING in ..................... popýtal som sa profesionálneho programátora s nickom djmeta (viď. jeho stránka djmetla.eu) a on mi poradil, nech nepoužívam: DATE_FORMAT(p.cas, "%e. %c. %Y %h.%i:%s") AS f_cas f pretože to je zbytočne náročné a v riadku ako mám $riadok->f_cas date("Y-m-d H:i:s", $riadok->cas); Týmto vás nejdem kritizovať, všetci sme ľudia ktorí sa učia celý život, chcem ti pomôcť. A píšem to tu keby niekto z google narazil na podobný problém. Funguje to parádne Ďakujem Kajman, Fisir a Joker za snahu a samozrejme aj djmetlovi. Neviem či sa u vás zamykajú témy, ale ak chcete, tak to môžete uzamknúť ako vyriešené. |
||
Časová prodleva: 10 let
|
0