我正在开发一个允许用户进行邮政编码搜索的web表单。我的意图是使用表单post在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();
?>
在查询返回相关值后,我想确定"area"返回的值是否是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();
}
欢迎提出任何建议。
您在if中使用$result
,但没有为其分配区域。因此,首先重新设置空间:
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'";
那么你的问题就会得到解决。