我刚开始学习php和mysql,我可能已经超越了自己。我想创建的是一个网页,其中人们可以注册一个活动,到目前为止,提交他们的名字,姓氏,年龄和电子邮件地址的表单正在工作,它实际上将信息发送到数据库
我要创建的下一件事是我可以显示所有提交的数据库记录的页面(电子邮件地址除外)。这也有效,但我想玩动态网址。
当我访问我的页面http://www.example.com/ppl.php?id=1时,我获得了显示的第一个数据库记录的信息,但我也想知道我是否可以使用名称而不是ID来使用,所以我尝试编辑我的代码并使用http://www.example.com/ppl.php?name=john这只会返回一个错误,但是在数据库中有一些名为john的人没有显示任何记录。
所以我想知道我想要的是否真的可行,以及如何使用我当前的代码。
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "event";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$id = $_GET['id'];
$firstname = 'firstname';
$lastname = 'lastname';
$age = 'age';
$sql = "SELECT * FROM people WHERE id = $id";
$result = $conn->query($sql);
echo "<table id='display' width='600' align='center'>";
echo"<tr><td> Firstname</td> <td> Lastname</td> <td> Age</td>";
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo"<tr><td width='33%'> $row[$firstname]</td> <td width='33%'> $row[$lastname]</td> <td width='33%'> $row[$age] cm</td></tr>";
}
} else {
echo "0 results";
}
$conn->close();
?>
答案 0 :(得分:0)
尝试更改查询:
$sql = "SELECT * FROM people WHERE id = $id";
要:
$name = $_GET['name'];
$sql = "SELECT * FROM people WHERE name LIKE '%$name%'";
然后回复你找到的每个约翰。
还要考虑使用这样的CSS。
<style>
#display {
width: 600px;
}
#display td {
width: 33%;
}
</style>
答案 1 :(得分:0)
您应该查找两个单独的<function get_random_string at 0x1034f7848>
键:$_GET
或id
。
name
我建议不使用<?php
if (isset($_GET['id'])) {
// logic to get row by ID
} elseif (isset($_GET['name'])) {
// logic to get row by Name
} else {
// logic if no $_GET keys are set
}
字段进行查找,因为它不是数据库中的主键 - 它可能不是唯一的。您的查询可能会返回多个结果,具体取决于存储的数据。
修改:要回答上面代码示例中 where 的问题,请考虑将其放在声明查询字符串的位置。
name
从那里你可以保持相同的查询执行逻辑。但正如我所说,我建议不要使用<?php
if (isset($_GET['id'])) {
$id = $_GET['id'];
$sql = "SELECT * FROM people WHERE id = $id";
} elseif (isset($_GET['name'])) {
$name = $_GET['name'];
$sql = "SELECT * FROM people WHERE name = '$name'";
}
字段作为密钥,因为它可能不是唯一的。