好的,我在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.
好的,历史表的顺序非常重要。我想在我的页面上打印订单(重复和所有),但是我想在它们旁边的Annotated表中打印它们各自的描述,所以它看起来像这样:
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.
到目前为止,我已经查询了数据库,并从我想要打印的历史记录中创建了所有videoid的数组。代码如下所示:
$query = mysql_query("SELECT `videoid` FROM `History` WHERE BLAH BLAH;");
$idVideoColumn = array();
while($row = mysql_fetch_array($query)){
$idVideoColumn[] = $row['videoid'];
}
$implodedIdVideo = "'".implode("', '", $idVideoColumn)."'";
所以我的视频列表已准备好包含在变量$ implodedIdVideo中的MySQL查询。任何人都知道是否可以打印我正在尝试做的事情? (请不要回答我已弃用的MySQL语法)
答案 0 :(得分: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;
答案 1 :(得分: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']分配给名称为index的$ idVideoColumn []。这可能永远不会发生,因为mysql_fetch_array总是通过数组索引返回值,你应该使用mysql_fetch_assoc。
$str = "" ;
while($row = mysql_fetch_assoc($query)){
$str .= $row['videoid'] . ',' . $row['description'] ;
}
答案 2 :(得分: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;
}