iPixel Posted October 7, 2009 Share Posted October 7, 2009 Long story short, my menu is driven by a database that has two fields. Menuname - Linkname Menuname has names like -- Home, About Us, Blah blah.... Linkname has info like - blah.pdf, jimbo.xls, and http://www.google.com files such as pdf's xls or doc files are stored in a directory So my idea to know when to use the directory or not was to use strpos() and look for .com in the result for linkname, so if it returns true dont use the directory but if it's false use it. Code: <?php $gethrmenu_q = "SELECT * FROM xx_menu WHERE parent = 'Programs' ORDER BY menuname ASC"; $gethrmenu_s = mysql_query($gethrmenu_q) or die(mysql_error()); while($gethrmenu_r = mysql_fetch_assoc($gethrmenu_s)) { $needle = ".com"; $haystack = $gethrmenu_r['linkname']; $checkLink = strpos($needle, $haystack); if($checkLink == true) { $dir = ""; } else { $dir = "documentfiles/"; } ?> <span class="subLink"><a href="<?php echo $dir; echo $gethrmenu_r['linkname']; ?>" target="_blank"><?php echo $gethrmenu_r['menuname']; ?></a></span><br /> <?php } ?> Quote Link to comment https://forums.phpfreaks.com/topic/176880-solved-why-isnt-my-strpos-working/ Share on other sites More sharing options...
Philip Posted October 7, 2009 Share Posted October 7, 2009 Change if($checkLink == true) to if($checkLink !== false) Returns the position as an integer. If needle is not found, strpos() will return boolean FALSE. Warning This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "". Please read the section on Booleans for more information. Use the === operator for testing the return value of this function. Quote Link to comment https://forums.phpfreaks.com/topic/176880-solved-why-isnt-my-strpos-working/#findComment-932636 Share on other sites More sharing options...
taquitosensei Posted October 7, 2009 Share Posted October 7, 2009 This isn't the problem but...you don't need the "== true" this will work. if($checkLink) the problem is... you've got your needle and haystack backwards you're looking for a haystack in the needle. Quote Link to comment https://forums.phpfreaks.com/topic/176880-solved-why-isnt-my-strpos-working/#findComment-932637 Share on other sites More sharing options...
iPixel Posted October 7, 2009 Author Share Posted October 7, 2009 Dammit how did i not see that... blah it's because you look for a needle in a haystack not a haystack in a needle... i guess needle coming first was natural to me. Blah no excuses im an idiot! TY !!! Quote Link to comment https://forums.phpfreaks.com/topic/176880-solved-why-isnt-my-strpos-working/#findComment-932638 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.