Jump to content

Archived

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

txrandom

Using Arrays in Conditional Statements

Recommended Posts

I'm trying to make a php script that checks a database for blocked IP addresses.  If the user's IP is on the blocked IP list, the page is suppose to not load and show a small message.  I'm trying to set it up by combining the database data into an array.

[code]$sql = mysql_query("SELECT ip FROM blockedips") or die(0);
       

while ($array = mysql_fetch_array($sql))
{
    $data[] = $array[0];
}

for ($i = 0; $i < count($data); ++$i) {
        print $data[$i];
    }[/code]

That code fetches the database data and compiles it into an array.  I printed the array just to make sure if works.  Now I'm trying to make a conditional statement using arrays. 

I tried:
[code]if($ip==$data[]) { code here } else { other code here }[/code]
but I get an error saying I can't use [].  How do I get a conditional statement to check each value in an array?  I can sort of think of a very complex way, but I was thinking there would be an easy solution.  Thanks for the help!

Share this post


Link to post
Share on other sites
Use SQL to do this for you:

[code]
$result = mysql_query("SELECT * FROM blockedips WHERE ip = '$visitorip'") or die(mysql_error());
if (mysql_num_rows($result) > 0) {
  //give blocked message
} else {
  //show page
}
[/code]

Share this post


Link to post
Share on other sites
If you insist on using the array, use the in_array (http://www.php.net/in_array) function:

[code]
if (in_array($ip, $data) {
  //code here
} else {
  //other code here
}
[/code]

Share this post


Link to post
Share on other sites
My array just printed out the four identical values 127.0.0.1127.0.0.1127.0.0.1127.0.0.1 from the database.  Thanks for the help, arrays aren't a must use, I just thought it would make it easier.  The SQL version should be easier. Thanks again!

Share this post


Link to post
Share on other sites

×

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.