[英]Display results from mysql query in php
我正在嘗試為我的網站制定一個即將開設的課程。 我想在mysql數據庫中維護數據。 我已經在msql中設置了3個表。
1.courses
2.category
3.coursedates
所有這些都由course_id鏈接。
基本上,我想使用查詢在PHP中以以下方式顯示課程數據。
課程名稱天數課程日期
我已經嘗試使用以下編碼
<?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);
?>
您正在混合mysql_ *和mysqli:
$con=mysqli_connect("localhost","root","","mentertraining");
但:
$result = mysql_query($query);//?
使用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);
?>
將代碼替換為以下內容:
<?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);
?>
請注意,您的查詢可能更容易重寫,例如:
"
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;
"
順便說一句,您可能為一個不存在的課程設置了課程日期似乎很奇怪,因此第一個OUTER JOIN可能會被重寫為INNER JOIN!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.