0

好的,所以我在 MySQL 中有这两个表。一种称为“历史”,一种称为“注释”。

“历史”表充满了可以重复的随机 YouTube 视频 ID。“注释”表包含每个视频 ID 的唯一副本以及该 ID 的描述。看起来像这样:

History                            Annotated

video id                   video id         description

id_1                       id_1             description_1
id_1                       id_2             description_2
id_3                       id_3             description_3
id_2                       id_4             description_4
id_3                       etc.             etc.
id_1
id_4
id_2
etc.

好的,所以历史表的顺序非常重要。我想将订单(重复和全部)打印到我的页面上,但我想从它们旁边的带注释的表中打印它们各自的描述,所以它看起来像这样:

id_1   -    description_1
id_1   -    description_1
id_3   -    description_3
id_2   -    description_2
id_3   -    description_3  
id_1   -    description_1
id_4   -    description_4
id_2   -    description_2
etc.        etc.

到目前为止,我已经查询了数据库,并从我想要打印的历史记录中制作了一个数组。代码如下所示:

$query = mysql_query("SELECT `videoid` FROM `History` WHERE BLAH BLAH;");
$idVideoColumn = array();
while($row = mysql_fetch_array($query)){
      $idVideoColumn[] = $row['videoid'];
}
$implodedIdVideo = "'".implode("', '", $idVideoColumn)."'";

所以我已经准备好我的 videoid 列表,以供变量 $implodedIdVideo 中包含的 MySQL 查询使用。任何人都知道是否可以打印我正在尝试做的事情?(请不要回答我已弃用的​​ MySQL 语法)

4

3 回答 3

0
SELECT h.videoid, a.description
    FROM history h
        INNER JOIN annotated a
            ON h.videoid = a.videoid
    WHERE blah blah
    ORDER BY h.SomeColumnForOrdering;
于 2012-09-06T15:11:34.067 回答
0
   $sql =  select video_id , description from history A , annotated B   where A.video_id = B.video_id ORDER BY A.video_id DESC;

您必须预先加入才能获得期望的结果。

您粘贴错误的代码:

while($row = mysql_fetch_array($query)){
      $idVideoColumn[] = $row['videoid'];
}

$idvideoCoulm 应该为空,因为您正在使用 mysql_fetch_array 来获取结果,然后您将 $row['videoid'] 分配给具有名称索引的 $idVideoColumn[]。这是永远不会发生的,因为 mysql_fetch_array 总是按数组索引返回值,你应该使用 mysql_fetch_assoc。

$str = "" ;
while($row = mysql_fetch_assoc($query)){
      $str .= $row['videoid'] . ',' . $row['description'] ; 
}
于 2012-09-06T15:41:08.097 回答
0

呃,我不能让它与连接表一起工作。我对 MySQL 的了解还不够好。我决定以笨重不灵活的方式来做。

$query4 = mysql_query("SELECT `videoid` FROM `History` WHERE BLAH BLAH;");
$idVideoColumn = array();
while($row = mysql_fetch_assoc($query4)){
    $idVideoColumn[] = $row['videoid'];
}
$implodedIdVideo = "'".implode("', '", $idVideoColumn)."'";
$length = count($idVideoColumn);



$i = 0;
while($i < $length) {
    $query = mysql_query("SELECT `description` FROM `Annotated` WHERE `videoid` = '".$idVideoColumn[$i]."';");
    $result = mysql_fetch_assoc($query);
    echo $idVideoColumn[$i] . " --- " . $result['description']."<br /><br />";
    $i = $i + 1;
}
于 2012-09-06T15:56:04.790 回答