RE: [PHP] [Newman] updating a mysql record if IP # is the same.

From: Date: Wed, 20 Mar 2002 22:15:26 +0000
Subject: RE: [PHP] [Newman] updating a mysql record if IP # is the same.
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-89421@lists.php.net to get a copy of this message
A number of problems. First and foremost you're extracting multiple rows from the database table are you not? Therefore you must increment through them in some way. I like to embed my mysql_fetch_xxx() functions in a while() loop. ----------------------------------------------- while ($row = mysql_fetch_array($sql_result)) { // Check to see if this IP Address was previously recorded. $exists = 0; if ($proxy_ip == $row["accessIP"]) { $exists = 1; break; } } // IF the IP exists do this thing ELSE do that other thing. if ($exists) { // Update view where ip = visitor_ip mysql_query("UPDATE access SET accessVIEW = accessVIEW+1 WHERE accessIP = $proxy_ip"); } else { // do this other stuff... } ----------------------------------------------- Remember the WHILE() loops. By the way there's a fantastic book that talks all about this stuff called, "PHP and MySQL Web Development" by Luke Welling & Laura Thomson. It is an invaluable source of real-world examples. Hope this helps. -Kevin -----Original Message----- From: Philip J. Newman [mailto:newmanpj@philipsdomain.com] Sent: Wednesday, March 20, 2002 1:58 PM To: php-general@lists.php.net Subject: [PHP] [Newman] updating a mysql record if IP # is the same. What I'm trying to do: I have a log table called 'access'. When a user comes to my website there IP is logged, along with there DNS name. When they return with the same IP number the accessVIEW is updated +1 and the last number is assigned to them. Heres the Code: <?php require"config.php"; $proxy_ip=getenv('REMOTE_ADDR'); $proxy_dns=gethostbyaddr($proxy_ip); $actual_ip="$HTTP_X_FORWARDED_FOR"; $actual_dns = gethostbyaddr($HTTP_X_FORWARDED_FOR); $add_date=date ("d/F/Y @ h:i:s A"); $sql = "SELECT accessIP FROM access ORDER BY accessID DESC"; $sql_result = mysql_query($sql, $connection) or die ("Could not get Query"); $row = mysql_fetch_array($sql_result); $accessIP = $row["accessIP"]; if (mysql_num_rows($sql_result) == "$accessIP") { // Update view where ip = visitor_ip mysql_query("UPDATE access SET accessVIEW = accessVIEW+1 WHERE accessIP = $accessIP"); } else { // Normal insert $sql = "INSERT INTO access (accessID, accessIP, accessDNS, accessTIME, accessUPDATE, accessVIEW) VALUES ('', '$proxy_ip', '$proxy_dns', '$add_date', NOW(NULL), '0')"; $result = mysql_query($sql); } $sql = "SELECT accessID FROM access ORDER BY accessID DESC LIMIT 1"; $sql_result = mysql_query($sql, $connection) or die ("Could not get Query"); $row = mysql_fetch_array($sql_result); $accessNUMBER = $row["accessID"]; mysql_free_result($sql_result); mysql_close($connection); ?> Can anyone help me. This script is not working. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php

« previous php.general (#89421) next »