Я строю почтовый индекс/почтовый индекс для США & Канада. У меня есть код, прекрасно работающий с обычным поиском в почтовом индексе США, который составляет 5 символов. Канадские почтовые коды - 6 символов. Мне нужен этот код, поэтому, если пользователь добавляет только 1-4 символа, если он соответствует чему-либо в базе данных, я не хочу, чтобы эти результаты отображались, потому что они отображали сотни, и все они были бы неправы.Как выполнить поиск php, где строка может содержать 5 или 6 символов?
В моем коде, у меня есть:
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.';
}
}
}
?>
'если (strlen ($ search_name) == 5 || strlen ($ search_name) == 6) ' –
Пожалуйста, покажите только код, необходимый для понимания вашей проблемы. Регулярное выражение с '{5,6}' соответствует «5-6 раз». Может ли это работать на вас? – Floris