【问题标题】:Use Data From One SQL Table and Correlate It To Data In Another Table使用一个 SQL 表中的数据并将其与另一个表中的数据相关联
【发布时间】:2015-12-24 02:11:47
【问题描述】:

首先,我这样做纯粹是为了教育目的。我有一个 Kodi (XBMC) 插件,它通过我的电视节目数据库并存储已观看的剧集和观看次数。我想出了如何使用 HTML 表单使用 PHP 从我的数据库中检索数据(TheTVDB ID 编号、季节、剧集编号以及该剧集的播放次数)。为了进一步了解我的知识,我正在尝试转换表单采用的“友好”显示名称,然后将其转换为 ID 号,并在同一个不同表的另一个查询中使用该存储值数据库以返回剧集和季节编号。

例如,朋友ID# 79168。表 tvshows 包含列 idShowtitles,而表 episode_watched 包含列 idShowseasonepisodeplayCount。在idShowtitle 关联后,我想输出一个表格,其中包含与特定播放次数和标题匹配的SeasonEpisode 列。

这是我的代码:http://pastebin.com/i7Y2ZWpR

这是我得到的 PHP 错误:

注意:试图获取非对象的属性 /usr/share/webapps/pydio/sql.php 在第 15 行

0 个结果

【问题讨论】:

    标签: php html mysql


    【解决方案1】:
    1. 您在第二个查询中使用的是资源而不是结果
    2. 您没有将查询中的字符串用分号括起来
    3. 您的代码是可注入 SQL 的。

    让我们解决这个问题:

    <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>
    

    【讨论】:

    • 太棒了!感谢您的帮助。
    猜你喜欢
    • 2014-01-28
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    相关资源
    最近更新 更多