[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 300
  • Last Modified:

MySql - LEFT - Need to match 1,2,3 + characters

I have a simple form on my website where people can lookup a country code.  The country codes are either 1, 2, or 3 digits in length.  The problem is that my results are not showing all possible matches.

Example:

The code 55 is Brazil.  55629 is Brazilian cell phones.

When I search for 55 I want to see anything that stats with the user entered valued, 55.

Just like if I entered 5 the result would be

5 - Country X
55 - Brazil
55629 - Brazilian Cell Phones

Here is what I have so far but clearly does not work.


PHP PAGE
-------------
 
$dbconn = mysql_connect($hostname, $username, $password) or die("EPIC FAIL: Unable to connect to MySQL DB");
 
$database = mysql_select_db("te_support", $dbconn);
 
$query  = "SELECT Area, Rate FROM OWF_RATES WHERE Code = LEFT('" . $_POST["cCode"] . "',1)";
$result = mysql_query($query) or die(mysql_error());
 
$rows = array();
while($row  = mysql_fetch_array($result))
{
	$rows[] = $row;
}
mysql_free_result($result);
mysql_close($dbconn);
	
 
$w->setvar("rows", $rows);
 
$w->fdisplay("rates.tpl", true);
 
 
 
 
------------------------------ HTML PAGE --------------
 
<table>
		<th>
		  <div align="center">{$LANG_country_area_region_name}</div>
		</th>
		<th>
		  <div align="center">{$LANG_rate_per_minute}  ( US$ )</div>
		</th>
          {foreach from=$rows item=row}
            <tr>            </tr>
          <tr>
            <td>{$row.Area}</td>
            <td>
              <div align="center">{$row.Rate}</div>
            </td>
          </tr>
          {/foreach}
        </table>

Open in new window

0
joedunn
Asked:
joedunn
  • 2
1 Solution
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
this should work better:
$query  = "SELECT Area, Rate FROM OWF_RATES WHERE Code LIKE '" . $_POST["cCode"] . "%' ORDER BY LEN(Code) DESC ";

Open in new window

0
 
Ray PaseurCommented:
Might want that "order by" to be "LEN(Code) ASC" so the short codes come out first?
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
>Might want that "order by" to be "LEN(Code) ASC" so the short codes come out first?
correct. I am use to use DESC in similar situations to get the longest match first.
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now