[英]Display results from mysql query in php
I am trying to develop an upcoming course dates for my website. 我正在尝试为我的网站制定一个即将开设的课程。 I want to maintain the data in an mysql database. 我想在mysql数据库中维护数据。 I have set up 3 table in msql. 我已经在msql中设置了3个表。
1.courses 1.courses
2.category 2.category
3.coursedates 3.coursedates
All are linked by course_id. 所有这些都由course_id链接。
Basically I want to present the data from coursedates in the following way in PHP using a query. 基本上,我想使用查询在PHP中以以下方式显示课程数据。
Course Title No Of Days Course Date 课程名称天数课程日期
I have tried using the follwoing coding 我已经尝试使用以下编码
<?php
$con=mysqli_connect("localhost","root","","mentertraining");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$query = "SELECT `coursedates`.`coursedate_id`,`courses`.`course_title`,`courses`.`no_of_days`,`category`.`category_name`,`coursedates`.`date1` FROM coursedates\n"
. "LEFT JOIN `mentertraining`.`courses` ON `coursedates`.`course_id` = `courses`.`course_id` \n"
. "LEFT JOIN `mentertraining`.`category` ON `courses`.`category_id` = `category`.`category_id` LIMIT 0, 30 ";
$result = mysql_query($query);
echo "<table border='1'>
<tr>
<th>Course Title</th>
<th>Course Date</th>
</tr>";
while($row = mysql_fetch_assoc($result))
{
echo "<tr>";
echo "<td>" . $row['course_title'] . "</td>";
echo "<td>" . $row['date1'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
You are mixing mysql_* and mysqli: 您正在混合mysql_ *和mysqli:
$con=mysqli_connect("localhost","root","","mentertraining");
But: 但:
$result = mysql_query($query);//?
Use mysqli_query instead: 使用mysqli_query代替:
$query = "SELECT
`coursedates`.`coursedate_id`,
`courses`.`course_title`,
`courses`.`no_of_days`,
`category`.`category_name`,
`coursedates`.`date1`
FROM
coursedates
LEFT JOIN
`mentertraining`.`courses`
ON
`coursedates`.`course_id` = `courses`.`course_id`
LEFT JOIN
`mentertraining`.`category`
ON
`courses`.`category_id` = `category`.`category_id`
LIMIT 0, 30";
$result = mysqli_query($query);
echo "<table border='1'>
<tr>
<th>Course Title</th>
<th>Course Date</th>
</tr>";
/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>" . $row['course_title'] . "</td>";
echo "<td>" . $row['date1'] . "</td>";
echo "</tr>";
}
/* free result set */
mysqli_free_result($result);
echo "</table>";
mysqli_close($con);
?>
Replace your code with the following : 将代码替换为以下内容:
<?php
$con=mysqli_connect("localhost","root","","mentertraining");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$query = "SELECT `coursedates`.`coursedate_id`,`courses`.`course_title`,`courses`.`no_of_days`,`category`.`category_name`,`coursedates`.`date1` FROM coursedates "
. " LEFT JOIN `mentertraining`.`courses` ON `coursedates`.`course_id` = `courses`.`course_id` "
. " LEFT JOIN `mentertraining`.`category` ON `courses`.`category_id` = `category`.`category_id` LIMIT 0, 30 ";
$result = mysqli_query($con,$query);
echo "<table border='1'><tr><th>Course Title</th><th>Course Date</th></tr>";
while($row = mysqli_fetch_assoc($result))
{
echo "<tr>";
echo "<td>" . $row['course_title'] . "</td>";
echo "<td>" . $row['date1'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
Note that your query might be more legible rewritten something like this... 请注意,您的查询可能更容易重写,例如:
"
SELECT cd.coursedate_id
, c.course_title
, c.no_of_days
, t.category_name
, cd.date1
FROM coursedates cd
LEFT
JOIN courses c
ON c.course_id = cd.course_id
LEFT
JOIN category t
ON t.category_id = c.category_id
LIMIT 0, 30;
"
Incidentally, it seems odd that you could have course dates for a course that didn't exist, so that first OUTER JOIN could probably be rewritten as an INNER JOIN! 顺便说一句,您可能为一个不存在的课程设置了课程日期似乎很奇怪,因此第一个OUTER JOIN可能会被重写为INNER JOIN!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.