Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在彼此内部使用多个mysql查询循环_Php_Mysql_Join - Fatal编程技术网

Php 在彼此内部使用多个mysql查询循环

Php 在彼此内部使用多个mysql查询循环,php,mysql,join,Php,Mysql,Join,我很难在彼此内部使用多个查询。我找了它,但找不到我需要的东西! 这就是我的问题。请帮帮我 我有一个名为“cat”的表,我通过mysql获得标题,这很好。我还有一个名为works的表,它有一个名为“Cat_ID”的字段,这个字段连接两个表的数据。works表还有一个名为“年”的字段,它是艺术品生产的年份 cat>{ID,标题,…} 作品>>{ID,标题,URL,年份,类别ID,} 我需要按年份对作品库进行分类,因此我编写了如下代码: <?php $result = q("cat"); whi

我很难在彼此内部使用多个查询。我找了它,但找不到我需要的东西! 这就是我的问题。请帮帮我

我有一个名为“cat”的表,我通过mysql获得标题,这很好。我还有一个名为works的表,它有一个名为“Cat_ID”的字段,这个字段连接两个表的数据。works表还有一个名为“年”的字段,它是艺术品生产的年份

cat>{ID,标题,…} 作品>>{ID,标题,URL,年份,类别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()是一个只连接到DB并运行查询的函数。这条线很好用。 但它根本不会进入内心!我检查并看到$yrow是完全空的(通过php的empty()实现)! 我能怎么办?看来mysql根本无法执行第二个查询!我认为解决办法必须有两个方面。 1.让mysql执行第二个查询。 2.改变第一个查询的方式,清楚地获取年份,并通过mysql_fetch_数组读取它们,并将年份作为每个年份的锚定通道


请帮帮我。

不要有多个循环,而要使用
内部连接

SELECT DISTINCT works.Year FROM cat INNER JOIN works ON (cat.ID = works.Cat_ID)

如果您可以对两个SQL查询进行联接,这将更加高效。您确定您的查询正确且有效吗?
mysql\u error
显示了什么?sql没有显示错误,它只是不返回任何东西!也许您需要向我们展示
q(“cat”)的SQL查询谢谢你的回答,但是我的表的结构是这样的:cat>{ID,Title,…}而works表是这样的works>{ID,Title,URL,Year,cat_ID,…}我需要一个这样的数组用于plz:cat{Title,…,Years{200520092010,}