首先,我这样做纯粹是出于教育目的。我有一个 Kodi (XBMC) 插件,它可以遍历我的电视节目数据库并存储已观看的剧集和次数。我弄清楚了如何使用 HTML 表单使用 PHP 从我的数据库中检索数据(TheTVDB ID 号、季节、剧集编号以及剧集已播放的次数)。为了进一步加深我的知识,我尝试转换表单所采用的“友好”显示名称,然后将其转换为 ID 号,并在同一个不同表的另一个查询中使用该存储的值数据库返回剧集和季号。
例如, friend 是ID# 79168
。表 tvshows 包含列 idShow
和 titles
,而表 episode_watched 包含列 idShow
>、季节
、剧集
和playCount
。在 idShow
与 title
相关联后,我想输出一个表格,其中包含匹配的列 Season 和 Episode具体的播放次数和标题。
这是我的代码:http://pastebin.com/i7Y2ZWpR
这是我收到的 PHP 错误:
Notice: Trying to get property of non-object in /usr/share/webapps/pydio/sql.php on line 15
0 个结果
最佳答案
- 您在第二个查询中使用的是资源,而不是结果
- 您没有将查询中的字符串用分号括起来
- 您的代码是可 SQL 注入(inject)的。
让我们解决这个问题:
<html>
<body>
<?php
$mysqli = new mysqli("127.0.0.1", "root", "password", "WatchedList");
$showname = $mysqli->real_escape_string($_GET["showname"]); //Prevents SQLi
$title = $mysqli->query("SELECT idShow FROM tvshows WHERE title='$showname'"); //Added ' and '
$res = $title->fetch_assoc(); //fetch the result to grab idshow
$result = $mysqli->query("SELECT season,episode FROM episode_watched WHERE idShow='" . $res['idShow'] . "' and playCount>=3"); //added ' and '
//Outputs the data in a table
if ($result->num_rows > 0) {
echo "<table><tr><th>Season</th><th>Episode</th></tr>";
while ($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["season"]."</td><td>".$row["episode"]."</td></tr>";
}
echo "</table>";
}
else {
echo "0 Results";
}
$mysqli->close();
?>
</body>
</html>
关于php - 使用一个 SQL 表中的数据并将其与另一表中的数据关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34446395/