jaykup Posted October 3, 2008 Share Posted October 3, 2008 $search = "somethi"; switch ($search) { case "somethi*" in "something": echo "you found something, which is close to your entered search of somethi"; break; } How can I do something like that? Link to comment https://forums.phpfreaks.com/topic/126916-wildcard-in-switchcase/ Share on other sites More sharing options...
nrg_alpha Posted October 3, 2008 Share Posted October 3, 2008 I suspect you are trying to build a search engine? If so, why not simply do a Google search on 'PHP search engines' and see what comes up? Cheers, NRG Link to comment https://forums.phpfreaks.com/topic/126916-wildcard-in-switchcase/#findComment-656462 Share on other sites More sharing options...
jaykup Posted October 3, 2008 Author Share Posted October 3, 2008 I've already got a "search engine" for mySQL using "like" and "%", which works great. But sometimes it does not return a result. I would like to have a small case block for some major ones (mis-spellings) and re-do the search with a new value. The above code is confusing, I'll try to make it better. user enters a search - "bananna" which will go to "$search" switch ($search) { case "bana*": echo "You were trying to seach for 'banana', but typed in 'bananna' so I'll run my query with 'banana'"; $query = mysql_query("SELECT banana FROM fruits"); break; } I've tried that but PHP sees a literal "*" Link to comment https://forums.phpfreaks.com/topic/126916-wildcard-in-switchcase/#findComment-656470 Share on other sites More sharing options...
DamienRoche Posted October 10, 2008 Share Posted October 10, 2008 Have you tried case "/bana(.*?)/" Hope that helps. Link to comment https://forums.phpfreaks.com/topic/126916-wildcard-in-switchcase/#findComment-661658 Share on other sites More sharing options...
ibechane Posted October 13, 2008 Share Posted October 13, 2008 Have you tried case "/bana(.*?)/" Hope that helps. I don't think you can do it that way. You have to tell PHP that "/bana(.*?)/" is a regular expression. Otherwise, it will assume that it's like any other normal string match the string literally. Try this: <?php $search_results = 'banama'; switch(true) { case preg_match('/^bana.*/i',$search_results): $search_results = 'banana'; break; } ?> Link to comment https://forums.phpfreaks.com/topic/126916-wildcard-in-switchcase/#findComment-663619 Share on other sites More sharing options...
corbin Posted October 13, 2008 Share Posted October 13, 2008 Uh in that case, why not just do an if? Link to comment https://forums.phpfreaks.com/topic/126916-wildcard-in-switchcase/#findComment-663658 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.