我正在处理允许用户进行邮政编码搜索的网络表单。我的目的是使用表单发布在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();
}
任何建议都表示赞赏。
答案 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'";
然后你的问题就会解决。