Jump to content

MYSQL REGEX (UPDATE IF NOT EXIST?)


SchweppesAle

Recommended Posts

Hi, I've never done this using MYSQL before so bare with me

 

I have the following simple query.

$query = "UPDATE #__jt_banners SET 
                impressions = impressions + 1
                WHERE id = '$id'";

 

It tallies each visiting user as an impression, however i need to first compare his/her "user agent" against a database of known search engine bots, etc. 

 

In addition, I have a separate table which stores C class IP Addresses in the following format "72.14.199"

 

Returning the IP address and User agent is simple enough through PHP. 

 

How can I then rewrite the query so that it first checks to make sure that these values don't match any within our database. 

 

structure:

jos_jt_userAgents:

int "id"

text "user_agent"

text "description"

text "link"

 

jos_jt_ip_addresses

int "id"

var_char(45) "search_engine"

var_char(45) "ip_address"

text "description"

 

jos_jt_banners

int "impressions"

bllahblahablahlah

Link to comment
https://forums.phpfreaks.com/topic/186746-mysql-regex-update-if-not-exist/
Share on other sites

ok, i tried the following.  It doesn't seem to be incrementing the impressions column at all though.  Am I at least on the right track?

 

$user_agent = $_SERVER['HTTP_USER_AGENT'];

/*
        $query = "UPDATE #__jt_banners SET 
                impressions = impressions + 1
                WHERE id = '$id'";*/
        $query = "SELECT #__jt_banners.impressions
                         , #__jt_banners.id
                         , #__jt_userAgents.id AS uid
                         , #__jt_userAgents.user_agent
                    FROM #__jt_banners, #__jt_userAgents
                     UPDATE #__jt_banners SET
                        impressions = impressions + 1
                            WHERE (id = '$id' AND (user_agent LIKE '$user_agent' = NULL))";

this one increments the impression column even after I add my browser's user agent to the table  :wtf:

 

$query = "UPDATE #__jt_banners, #__jt_userAgents SET
                        #__jt_banners.impressions = #__jt_banners.impressions + 1
                            WHERE (#__jt_banners.id = '$id' AND
                    (#__jt_userAgents.user_agent NOT LIKE '$user_agent'))";

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.