希望你们一切顺利。
我有3个数据库表:
和带有StudentID的'条目'表,以及他们选择注册的两个事件。
如何创建允许我显示事件的SQL代码?例如,如果我想显示...
以与此类似的表格形式:
我如何做到这一点,以便它接受来自组合框的输入并找到选择了此事件的学生(在Ev1或Ev2字段中)并将信息分布在3个不同的表中时将其列出?
这是我的代码,但我觉得它不起作用。
<?php
//This gets all the other information from the form
$id=$_POST['studID'];
$event1=$_POST['event1'];
$event2=$_POST['event2'];
// Connects to your Database
// require_once 'login.php';
$db_hostname = 'localhost';
$db_username = 'root';
$db_password = 'ITGS!!!';
$db_server=mysql_connect($db_hostname,$db_username,$db_password);
if(!$db_server) die("Unable to connect to MySQL" .mysql_error());
$db_database='sportsDay';
mysql_select_db($db_database,$db_server)
or die("Unable to connect to database. " .mysql_error());
$sql = "SELECT Entries.stID, Students.fName, Students.lName, Students.gender, Events.eventID
这是adminPage.php,这个:
if ($result->num_rows > 0) {
echo "<table><tr><th>Name</th><th>House</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["fName"]." ".$row["lName"]."</td><td>".$row["house"]."</td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
<html>
<body>
</body>
</html>
FROM Events INNER JOIN客户 ON Students.stID = Entries.stID; “; $ result = $ db_server-&gt; query($ sql);
@media
是我的display.php。
答案 0 :(得分:0)
PHP
文件。
您有SQL
个查询:
$sql = "SELECT Entries.stID,
Students.fName, Students.lName, Students.gender,
Events.eventID
FROM Events INNER JOIN Customers ON Students.stID=Entries.stID; ";
$result = $db_server->query($sql);
它应该如下所示,我没有看到一个名为customers
的表格,我想你的意思是students
。并且您在;
选择查询中还有一个SQL
:
$sql = "SELECT Entries.stID,
Students.fName, Students.lName, Students.gender,
Events.eventID
FROM Events INNER JOIN Students ON Students.stID=Entries.stID";
$result = $db_server->query($sql);
现在,在HTML
表单中,您有一些错误,每个删除列表都有一个ID,但服务器采用名称标记值,因此不是这一行:
<select id="Year">
<option value="7">Y7</option>
<option value="8">Y8</option>
<option value="9">Y9</option>
<option value="10">Y10</option>
<option value="11">Y11</option>
<option value="12">IB1</option>
<option value="13">IB2</option>
</select>
应该是这样的:
<select id="Year" name="Year">
<option value="7">Y7</option>
<option value="8">Y8</option>
<option value="9">Y9</option>
<option value="10">Y10</option>
<option value="11">Y11</option>
<option value="12">IB1</option>
<option value="13">IB2</option>
</select>
我已添加name="Year"
,现在$_POST['Year']
将采用适当的值。
在每个下拉列表中添加name
标记,您就可以将它们发送到PHP文件display.php
中:
$year = $_POST['Year'];
$gender = $_POST['Gender'];
$event = $_POST['Event'];
$sql = "SELECT Entries.stID,
Students.fName, Students.lName, Students.gender,
Events.eventID
FROM Events INNER JOIN Students ON Students.stID=Entries.stID
WHERE Students.year = '.$year.' AND Student.gender = '.$gender.'";
$result = $db_server->query($sql);
你第一张桌子没有用外键连接到第二张桌子,所以我们无法加入JOIN以获得所有具有特定年份和性别的人应该参加他们的活动。
您应该考虑开始学习mysqli_
或PHP-PDO
以获得更安全的数据。
我希望我能理解您所要求的内容,如果这对您没有帮助,您可以通过电子邮件寻求更多帮助。