基于表单发布查询MySQL表

时间:2015-03-27 01:09:30

标签: php mysqli

我正在处理允许用户进行邮政编码搜索的网络表单。我的目的是使用表单发布在MySQL表中搜索匹配的邮政编码,然后从同一行中的相关字段返回内容。

我可以提交...表单提交并将用户引导到预期的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();
?>

在查询返回关联的值后,我想确定来自&#39;区域的返回值是否为&#39;是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();
}

任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

您正在使用$result if,但是,您没有为其分配区域区域。所以,首先重新划分它:

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'";

然后你的问题就会解决。