如何从多个SQL表中获取值并在html / php表中显示?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从多个SQL表中获取值并在html / php表中显示?相关的知识,希望对你有一定的参考价值。
我有一个名为result
的SQL数据库,其中包含表res
和sub
。例如,res
表列和内容是:
sno regno name sub1 sub2 sub3 sub4 sub5
1 1DU12CS100 student1 70 80 85 70 90
2 1DU12CS101 student2 75 70 90 80 70
3 1DU12EE015 student3 80 85 70 50 65
4 1DU14CS123 student4 88 85 85 90 70
5 1DU13ME050 student5 85 90 70 60 55
sub
表的列和内容是:
Sno batname sub1 sub2 sub3 sub4 sub5
1 1DU12CS Maths English Hindi Urdu Social
2 1DU12ME Sanksrit Chinese Japanese French Dutch
3 1DU12EE Circuit Electrical Electronic Maths Hindi
4 1DU14CS Hindi Maths Urdu Science Maths
5 1DU13ME Computer Maths Electrical Mechanical GK
我想从表res
和表sub
中获取一些值并在php / html表中显示。
1DU12CS100 --
1DU ->college code
12 ->Student admission year
CS ->computer science
100->roll no of student
当有人以php格式输入1DU12CS100时,结果应该像这样显示......
Subjects Marks
Maths 70
English 80
Hindi 85
Urdu 70
Social 90
当有人输入1DU13ME050时,显示应该是
Subjects Marks
Computer 85
Maths 90
Electrical 70
Mechanical 60
GK 55
php表单代码是
<!DOCTYPE HTML>
<html>
<body>
<form action="result.php" method="post">
Enter your Reg No: <input type="text" name="regno"><br>
<input type="submit">
</form>
</body>
</html>
result.php代码是//应该在这个PHP代码中做出哪些更改?
<?php
$servername = "localhost";
$username = "myresult";
$password = "abcdefg";
$dbname = "myresult";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$regno = mysqli_real_escape_string($conn, $_POST['regno']);
$sql = "SELECT * FROM myresult WHERE regno LIKE '$regno'"; // What changes should be here ??
$result = $conn->query($sql);
$columns = array();
$resultset = array();
while ($row = mysql_fetch_assoc($result)) {
if (empty($columns)) {
$columns = array_keys($row);
}
$resultset[] = $row;
}
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "{$row['sub1']}{$row['sub2']}"; // What changes should be made here??
// Print the data
while($row = mysql_fetch_row($result)) {
foreach($row as $_column) {
echo "{$_column}";
}
}
}
} else {
echo "Result Not Found";
}
$conn->close();
?>
$sql = "SELECT sub.batname, sub.sub1 as subsub1, sub.sub2 as subsub2, ...,
Res.sub1 as ressub1, ...
FROM res
JOIN sub ON sub.batname = substr(res.regno, 1, 7)
WHERE regno LIKE '$regno'";
(我没有列出所有列。由于您将列命名为相同,因此您必须指定别名。更改名称将是一个好主意 - subn不是一个好名字。)
然后下面......
while ($row = $result->fetch_assoc()) {
echo "{$row['ressub1']}{$row['subsub1']}";
我只是你的SQL查询中的内部联接应该这样做。就像是:
SELECT * FROM res r INNER JOIN sub s ON r.id = s.id WHERE regno LIKE '1DU12CS100';
这只是一个开头(这里有太多的事情要做)但是对于初学者来说,你可以在开始时将你的SQL查询修改成这样的东西,因为batname似乎作为所有regno变量的开头存在
$sql = "SELECT regno as batname FROM myresult WHERE regno LIKE '{$regno}%'";
然后你可以把它变成一个变量,如$batname = $row['batname']
然后你可以使用$batname
作为链接表之间数据的方法。但是,您需要做更多的事情,因为存在一些确实存在的字符串。所以你需要在$batname
的某些地方识别特定的字符串,以确定它们的含义。这必须自行分解。最好创建一个新表来标识主题名称以匹配由此创建的字符串。
换句话说,您的脚本实际上只是一个开始。一旦你有了识别字符串中每个元素的方法(再次查找表会让你的生活变得更轻松),你将能够开始编写你的php脚本。
这是您可以使用的查找表的示例
code name
--- ----
CS Computer Science
等等(我很难说出这些代码发生了什么,但我告诉你它们的意思)。您应该为每件具有某些功能的部件提取此数据。
以上是关于如何从多个SQL表中获取值并在html / php表中显示?的主要内容,如果未能解决你的问题,请参考以下文章
PHP 如何从 AJAX 调用中发布多个数组/json 值并在同一个 SQL 查询中运行它们?