| 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: 12 let
|
|||
0