Jump to content

wildcard in switch/case?


jaykup

Recommended Posts

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 "*"

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

?>

Archived

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

×
×
  • Create New...

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.