2015-03-27 3 views
-1

Я работаю над веб-формой, которая позволяет пользователю вести поиск почтового индекса. Я намерен использовать сообщение формы для поиска таблицы MySQL для соответствующего почтового индекса, а затем вернуть содержимое из связанного поля в той же строке.Query Таблица MySQL на основе формы post

Я могу получить, насколько ... форма отправляет и направляет пользователя на предполагаемую страницу form_post.php. Если я нахожу <?php echo $_POST["zipcode"]; ?> на странице, он возвращает содержимое, отправленное пользователем.

Я следовал примеры PHP/MySQLi из этих страниц:

http://www.w3schools.com 
/php/php_mysql_connect.asp 
/php/php_mysql_select.asp 
/php/php_if_else.asp 

Я могу подключиться к базе данных и возвращает 2 выбранные значения из таблицы. Это мой пример до сих пор:

<?php 
$servername = "localhost"; 
$username = "db_username"; 
$password = "db_password"; 
$dbname = "db_name"; 

if (isset($_POST['zipcode'])) { 
    $zipcode = $_POST['zipcode']; 
} 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 

// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT zip_code, area FROM zipcode_table WHERE zip_code = $zipcode"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "Result: " . $row["zip_code"]. " " . $row["area"]. "<br>"; 
    } 
} else { 
    echo "0 results"; 
} 
$conn->close(); 
?> 

После того, как запрос возвращает соответствующие значения Я хотел бы, чтобы определить, если возвращаемое значение из области «» является одним из 3 значений затем перенаправить пользователя на соответствующий URL-адрес.

Я работал над выражением if/else следующим образом, а затем застрял.

if($result == "A") { 
    header("Location: http://example.com/page-1/"); 
} 
    elseif($result == "B") { 
    header("Location: http://example.com/page-2/"); 
} 
    elseif($result == "C") { 
    header("Location: http://example.com/page-3/"); 
} else { 
    header("Location: http://example.com/"); 
    exit(); 
} 

Любые рекомендации приветствуются.

+0

У вас есть ошибки? – Deepak

+0

Я бы получил пустую страницу, если была опечатка. В качестве альтернативы я бы перенаправил на страницу example.com, где находится форма. Я попытался настроить его таким образом, чтобы кто-то набрал «9999». – jans5k

+0

Что вы пытаетесь сделать здесь 'if ($ result ==" A ")'? Coz тип '$ result' будет объектом, поэтому вы не можете сравнить это с строкой и получить' true' – Deepak

ответ

0

вы используете $result в случае, но, вы не присвоить ему область region.So, первый relpace это:

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "Result: " . $row["zip_code"]. " " . $row["area"]. "<br>"; 
    } 
} else { 
    echo "0 results"; 
} 

с этим:

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "Result: " . $row["zip_code"]. " " . $row["area"]. "<br>"; 
     $result = $row["area"]; 
     break; 
    } 
} else { 
    echo "0 results"; 
    $result = ""; 
} 

затем заменить запрос:

$sql = "SELECT zip_code, area FROM zipcode_table WHERE zip_code = $zipcode"; 

с этим:

$sql = "SELECT zip_code, area FROM zipcode_table WHERE zip_code = '$zipcode'"; 

, тогда ваша проблема будет решена.

+0

Спасибо. Извините за опечатку. Я пытался заменить все из моей версии вживую и пропустил это. – jans5k

+0

@ jans5k вы можете принять мой ответ. –

Смежные вопросы