我在彼此内部使用多个查询时遇到了很大的麻烦。我搜索了它,但找不到我需要的东西!所以这是我的问题。请帮助我。
我有一个名为“cat”的表,我通过 mysql 获取标题,没关系。我有另一个名为works的表,其中有一个名为“Cat_ID”的字段,这是连接两个表的数据的字段。作品表还有一个名为“年”的字段,它是艺术品生产的年份。
cat >> { ID , Title , ... } 作品 >> { ID , Title , URL , Year , Cat_ID , ... }
我需要按年份对作品集进行分类,所以我编写了这样的代码:
<?php
$result = q("cat");
while($row = mysqli_fetch_array($result)) { ?>
<div>
<h2><a href="artwork.php?id=<?php echo $row['ID'] ?>"> <?php echo $row['Title']; ?></a></h2>
<span>
<?php
$sql = "SELECT DISTINCT Year FROM works WHERE Cat=".$row['Cat_ID'];
$yresult = mysql_query($sql);
while ($yrow = mysql_fetch_row($yresult))
{
//and print it as anchor here but it wont get into loop at all!
}
?>
</span>
</div>
<?php } ?>
q() 是一个只连接到数据库并运行查询的函数。这条线工作得很好。但它根本不会进入内部!我检查并看到 $yrow 完全是空的(由 php 的 EMPTY() )!我该怎么办?看来mysql根本无法执行第二个查询!我认为解决方案必须有两种方式。1.让mysql执行第二个查询。2.改变第一个查询的方式,明确获取年份并通过mysql_fetch_array读取它们,并将年份作为锚点。
请帮助我。