random Δημοσ. 22 Δεκεμβρίου 2004 Δημοσ. 22 Δεκεμβρίου 2004 Μια σελιδα php, σε συνεργασια με mysql * Aποθηκεύει σε ενα πινακα οσους την επισκευτούν (σαν IP) και εμφανίζει τους ως τωρα επισκέπτες (αν δεν θελετε, απλα αφαιρουμε το 2ο sql, ή το τροποποιουμε να δειχνει μονο τον τελευταίο) δειχνοντας το ip σαν url, μπορεις να χτυπας τον τοπικο σου σερβερ με την εξωτερικη του ip. * free host me php & mysql στο http://www.100webspace.com/ ΕΡ : θα ηθελα να παρω το dt TIMESTAMP σαν string μεσα στο select, αντι να το μετατρεπει η php, ξερει κανεις? οπως στην oracle υπαρχει το SELECT TO_CHAR(DT, 'DD/MM/YYYY HH24:MI') ενας προχειρος πινακας με 2 text fields για εξτρα info. > CREATE TABLE 'visit' ( 'id' INT( 10 ) NOT NULL AUTO_INCREMENT , 'ip' VARCHAR( 30 ) , 't1' VARCHAR( 255 ) , 't2' VARCHAR( 255 ) , 'dt' TIMESTAMP DEFAULT 'now()', PRIMARY KEY ( 'id' ) ); > <html><head><title>visitors logger</title></head><body> <?php //visitors logger v1.01 function DateAndTime ($timestamp) { list($year,$month,$day,$hour,$minute,$second) = sscanf($timestamp,"%4s%2s%2s%2s%2s%2s"); //setlocale( LC_TIME ,"el_EL.ISO8859-7"); return strftime("%c", mktime($hour,$minute,$second, $month,$day,$year)); } $username="user"; $password="pass"; $database="dbname"; $server="www.server111.co111m"; $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; $t1 = $HTTP_SERVER_VARS["HTTP_USER_AGENT"]; $t2 = null; $link = mysql_connect($server,$username,$password) or die( "Couldnt connect to database! :" . mysql_error() ); mysql_select_db( $database ) or die("<p>Could not select database: " . mysql_error() ); $query = 'INSERT INTO visit( ip, t1 ,t2 ) VALUES ( "'.$ip.'" , "'.$t1.'", "'.$t2.'" )'; //print '<p>' . $query; $result = mysql_query($query) or die('<p>Query failed ' . '.......Invalid query: ' . mysql_error() ); echo "<p>Welcome $ip "; // ------------------------------------------------------------------------------- $query = "SELECT id, ip, dt, t1, t2 FROM visit order by dt desc"; $result = mysql_query($query) or die('<p>Query failed: ' . mysql_error() ); print "<h3>Latest visitors so far...</h3>"; print "<hr><p><table border=1>\n"; print "\t\t<tH > Visitor </td>\n"; print "\t\t<tH > Timestamp </td>\n"; print "\t\t<tH > IP </td>\n"; print "\t\t<tH> Info 1 </td>\n"; print "\t\t<tH> Info 2 </td>\n"; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { print "\t<tr>\n"; $dt = DateAndTime( $line[dt] ); print "\t\t<td width=7%> $line[id] </td>\n"; print "\t\t<td nowrap> $dt </td>\n"; print "\t\t<td nowrap><a href='http://$line[ip]/'>$line[ip]</a> </td>\n"; print "\t\t<td> $line[t1] </td>\n"; print "\t\t<td> $line[t2] </td>\n"; print "\t</tr>\n"; } print "</table>\n"; mysql_free_result($result); mysql_close($link); ?> </body> </html>
Lyman_Zerga Δημοσ. 24 Δεκεμβρίου 2004 Δημοσ. 24 Δεκεμβρίου 2004 Random, δεν καταλαβαίνω τι θες να κάνεις. Έχεις δηλώσει το dt σαν TIMESTAMP στην βάση. Στο select η PHP πέρνει το timestamp σαν μια τιμή είτε εσωτερικά την ερμηνεύει ως int είτε ως string. Το τι θα κάνεις μετά με αυτό, εξαρτάται από το τι θες να κάνεις. Αλλά δεν έχω καταλάβει τί. Υποθέτω ότι θέλεις να σου εμφανίζει ένα string του τύπου mm/dd/yyyy. Για αυτό υπάρχει η date(). Αυτό που πρέπει να προσέξεις είναι ότι η MySQL ΔΕΝ χρησιμοποιεί unix timestamps. Άρα, πρέπει να χρησιμοποιήσεις στο select την UNIX_TIMESTAMP().
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.