Как мне сделать поиск php, где строка может быть 5 или 6 символов?

Я строю поиск по почтовому индексу для США и Канады. У меня есть код, прекрасно работающий только с поиском по почтовому индексу США, который состоит из 5 символов. Почтовые коды Канады состоят из 6 символов. Мне нужен этот код, поэтому, если пользователь добавляет только 1-4 символа, если он совпадает с чем-либо в базе данных, я не хочу, чтобы эти результаты отображались, потому что он отображал бы сотни, и все они были бы неправильными.

В моем коде у меня есть:

   if (strlen($search_name)>=5)

Как мне настроить это так, чтобы оно занимало 5 или 6 символов?

Итак, это код, который я использую:

    <?php

if (isset($_POST['search_name'])) {
    $search_name = $_POST['search_name'];
    if (!empty($search_name)) {

        if (strlen($search_name)>=5) {

        $query = "SELECT * FROM `search4` WHERE `ZipCode` LIKE '%".mysql_real_escape_string($search_name)."%'";
        $query_run = mysql_query($query);


        if (mysql_num_rows($query_run)>=1) {
          echo "<table width=700' border='0'>"; 
          echo "<tr>";
          echo "<td width='700' valign='top'><table width='100%' border='0'>";
          echo "<tr>";
          echo "<td><p><strong>Results found:  </strong></p>";
          while ($query_row = mysql_fetch_assoc($query_run)) {{
              echo $query_row ['ZipCode'].', '; 
              echo $query_row['ZipCity'].', ';
              echo $query_row['ZipState'].'<br>';
              echo '<p><strong>Area: </strong></p>'; echo $query_row['Area'].'';
              echo "</td>";
              echo "</tr>";

              echo "<tr>"; 
              echo "<td>";

              echo '<span class="productdescription"><p>Mar Cor Office:   </p></span></h2>';
              echo $query_row['MCPOffice'].', ';
              echo $query_row['CustClassID'].'<br>';
              echo $query_row['Address1'].'<br>';
              if(!empty($query_row['Address2'])) // This will skip if the field if it's empty
              echo $query_row['Address2'].'<br>';
              echo $query_row['City'].', ';
              echo $query_row['State'].'  ';
              echo $query_row['Zip'].'<br>';
              echo '<p><strong>Phone Number: </strong></p>';
              echo $query_row['Phone'].'<br>';
              echo '<p><strong>Fax Number: </strong></p>';
              echo $query_row['Fax'].'<br><br>';
              echo "</td>";
              echo "</tr>";
              echo "</table>";
              echo "</td>";

              //BeginImage display result
              $res=mysql_query("select * from Images");

                          {
              echo "<td width='703' align='right' valign='top'>";?> <img src="<?php echo $query_row["Image"]; ?>">  <?php echo "</td>";
              echo "</tr>";
              }


             //EndImage display result
              }

              }

        }else{
         echo 'No results found.';
    }

        }else{
         echo 'Your search must be a 5-digit zip code.';
    }



              }

  }


?>              

1 ответ

Решение
if(strlen($search_name) == 5 || strlen($search_name) == 6) {
// Whatever your code is here
}

Это условие будет выполнено, только если длина строки составляет 5 или 6 символов.

Руководство Strlen здесь

Другие вопросы по тегам