Jump to content


Photo

Using Arrays in Conditional Statements


  • Please log in to reply
4 replies to this topic

#1 txrandom

txrandom
  • Members
  • PipPip
  • Member
  • 21 posts

Posted 18 July 2006 - 12:37 AM

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.

$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];
    }

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:
if($ip==$data[]) { code here } else { other code here }
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!


#2 hitman6003

hitman6003
  • Members
  • PipPipPip
  • Advanced Member
  • 1,807 posts

Posted 18 July 2006 - 12:41 AM

Use SQL to do this for you:

$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
}


#3 redarrow

redarrow
  • Members
  • PipPipPip
  • Advanced Member
  • 7,308 posts
  • Locationlondon

Posted 18 July 2006 - 12:43 AM

print the array out for us ok.
Wish i new all about php DAM i will have to learn
((EMAIL CODE THAT WORKS))
http://simpleforum.ath.cx/mail2.inc
((PAYPAL INTEGRATION THAT WORKS))
http://simpleforum.a...aypal1_info.inc

#4 hitman6003

hitman6003
  • Members
  • PipPipPip
  • Advanced Member
  • 1,807 posts

Posted 18 July 2006 - 12:49 AM

If you insist on using the array, use the in_array (http://www.php.net/in_array) function:

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


#5 txrandom

txrandom
  • Members
  • PipPip
  • Member
  • 21 posts

Posted 18 July 2006 - 01:02 AM

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!




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users