<html>
<body>
<fieldset>
<legend>Введите имя человека</legend>
<form method="POST">
<div class="inner">
<input type="submit" name="all" value="Получить данные о всех людях в БД">
<div class="input-area">
<label for="name">Имя:</label>
<input type="text" name="name" id="name">
</div>
</div>
<input type="hidden" name="check" value="1">
<input type="submit" name="specific" value="Получить данные о люядх с данным именем">
</form>
</fieldset>
<a href="in.php" style="text-align: center">Записать данные в БД</a>
<?php
require_once "../reg file/login.php";
$con = new mysqli($hn, $un, $pw, $db);
if ($con->connect_error) die("Сбой подключения к БД.");
mysqli_query($con, "SET NAMES 'utf8'");
mysqli_query($con, "SET CHARACTER SET 'utf8'");
mysqli_query($con, "SET SESSION collation_connection = 'utf8_general_ci'");
if (isset($_POST["check"])) {
if (empty($_POST["name"])) {
die("Вы не ввели имя");
}
if (!empty($_POST["all"])) {
$stmt = $con->prepare("SELECT * FROM people");
if (!$stmt->excecute()) die("Fatal Error");
$result = $stmt->get_result();
echo "<h1>Данные о всех людях в БД:</h1>";
}
if (!empty($_POST["specific"])) {
$name = htmlentities($_POST["name"]);
$stmt = $con->prepare("SELECT * FROM people WHERE name=?");
$stmt->bind_param("s", $name);
$stmt->execute();
$result = $stmt->get_result();
if ($stmt->affected_rows == 0) die("Людей с именем " . $name . " нет в базе");
echo "<h1>Данные о людях с именем $name:</h1>";
}
foreach ($result as $row) {
echo "Возраст: " . $row["age"] . "<br>";
echo "Пол: " . ($row["gender"] == "male" ? "Мужской" : "Женский");
}
$stmt->close();
}
$con->close();
?>
</body>
</html>
我想了解按下了哪个按钮。
我检查条件:
if (!empty($_POST["all"])) {
$stmt = $con->prepare("SELECT * FROM people");
if (!$stmt->excecute()) die("Fatal Error");
$result = $stmt->get_result();
echo "<h1>Данные о всех людях в БД:</h1>";
}
if (!empty($_POST["specific"])) {
$name = htmlentities($_POST["name"]);
$stmt = $con->prepare("SELECT * FROM people WHERE name=?");
$stmt->bind_param("s", $name);
$stmt->execute();
$result = $stmt->get_result();
if ($stmt->affected_rows == 0) die("Людей с именем " . $name . " нет в базе");
echo "<h1>Данные о людях с именем $name:</h1>";
}
但它不起作用:无论我按下哪个按钮,只有第二个有效。
我如何理解仅使用 PHP / MySQL 按下了哪个按钮?
PS我在SO上看到过类似的问题,但我没有找到我的问题的答案
另一种检查方法是:
事实上,一切都变得容易多了!
我只是在第一个 if 块中编写了执行函数时犯了一个错误——我不小心写了执行。并显示“您没有输入名称”,因为我在进入 if (!empty($_POST["specific"])) 分支之前检查了是否输入了名称。因此,创建一个数组类型以及其中的所有元素和特定元素根本没有意义。你可以像我原来做的那样做