tags:

views:

91

answers:

5

Hello, In php is there a way i can check if a string includes a value. Say i had a string "this & that", could i check if that included "this". Thanks

UPDATED:

$u = username session

function myLeagues2($u)
{
     $q = "SELECT * FROM ".TBL_FIXTURES." WHERE `home_user` = '$u' GROUP BY `compname` ";
   return mysql_query($q, $this->connection);

}

That code returns if there is an exact match in the database. But i put two usernames together like "username1 & username2" and need to check if the username session is present in that field.

Is that a way to do this? It obviously woudn't equal it.

ANOTHER UPDATE:

If i use the like %username% in the sql, will it appear if its just the username. So rather than Luke & Matt being shown, if its just Luke will that show too? I dont want it to, i just want things that arent. Can you put != and LIKE so you only get similar matches but not identical?

Cheers

+5  A: 

Use strstr or strpos functions. Although there are regex ways too but not worth for such trivial task there.

Using strstr

if (strstr('This & That', 'This') !== false)
{
   // found
}

Using strpos

if (strpos('This & That', 'This') !== false)
{
   // found
}
Sarfraz
Hey thanks, could you give a brief example how I could use this?
Luke
@Luke: See my updated answer please.
Sarfraz
Thanks for the updated answer. Can you check my updated original post, what i want to do is slightly different, dont know if there is another way to do this.
Luke
Sarfraz
A: 
preg_match('/this/','this & that');

This returns the number of matches, so if it's 0, there were no matches. It will however stop after 1 match.

Joe Martinez
-1 avoid preg_match() when you can use lighter functions
greg0ire
Yeah, good point. I just threw it out as a second option because we don't know what the OP's ultimate goal is.
Joe Martinez
A: 

Regular expressions can be checked with preg-match.

Yanagi
A: 
<?php>
$string = 'this & that';
if (strpos($string, 'this') === FALSE) {
    echo 'this does not exist!';
} else {
    echo 'this exists!';
}
?>

What's noteworthy in the check is using a triple equal (forget the actual name). strpos is going to return 0 since it's in the 0th position. If it was only '== FALSE' it would see the 0 and interpret it as FALSE and would show 'this does not exist'. Aside from that this is about the most efficient way to check if something exists.

vrillusions
A: 

I like stristr the best because it is case insensitive.

Usage example from php.net:

$email = '[email protected]';
echo stristr($email, 'e'); // outputs [email protected]
echo stristr($email, 'e', true); // As of PHP 5.3.0, outputs US

based on your update

I think you want to use the like statement

SELECT * FROM table 
WHERE home_user LIKE "%username1%" OR home_user LIKE "%username2%"
GROUP BY compname

The % Is your wild card.

John Isaacks