使用来自一个SQL表的数据并将其与另一个表中的数据相关联

时间:2015-12-24 02:11:48

标签: php html mysql

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

例如,好友innertest1。表 tvshows 包含列ID# 79168idShow,而表 episode_watched 包含列titlesidShow,{ {1}}和season。在episodeplayCount相关联后,我想输出一个表格,其中包含季节剧集这些与特定游戏数量和标题相匹配的列。

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

这是我得到的PHP错误:

  

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

0结果

1 个答案:

答案 0 :(得分:0)

  1. 您在第二个查询中使用资源而不是结果
  2. 您没有将字符串括在半冒号的查询中
  3. 您的代码是SQL Injectable。
  4. 让我们解决一下:

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