Do while循环和Do while环路(如果外键等于主键)


Do while loop and Do while loop if the foreign key is equal to the primary key

我对php还很陌生,但我学得很快,我有一个问题希望你的专业人士能帮我。我在谷歌上搜索了一下,却找不到答案。

我正在尝试使用两个级别的动态下拉菜单-我已经建立了一个数据库并安装了数据,第一个级别有主键和类别名称,下一个级别有一个主键、foriegn键和子类别名称。

我为类别创建了一个do while循环,它非常有效!现在我尝试插入子类别。我将努力总结我想要达到的目标。

Do while循环每个类别之间的类别运行另一个循环显示所有子类别,其中类别的主键与子类别的foriegn键匹配。然后继续。

例如

Category
  Sub category
  Sub category
  Sub category 
Category
  Sub category
Category
  Sub category
  Sub category

等等…

关于如何编码,有什么建议吗?

我希望这是有道理的。

提前谢谢!

致以最诚挚的问候。

<?php 
// Query member data from the database and ready it for display
$category_sql = "SELECT * FROM tm_product_category";
$category_query = mysql_query($category_sql) or die(mysql_error());
$categorylist = mysql_fetch_assoc($category_query);
?>
<?php 
//Connect to the database through our include 
include_once "connect_to_mysql.php";
// Query member data from the database and ready it for display
$subcategory_sql = "SELECT * FROM tlk_sub_cat";
$subcategory_query = mysql_query($subcategory_sql) or die(mysql_error());
$subcategorylist = mysql_fetch_assoc($subcategory_query);
?>




<?php do { ?>
    <ul><li><a href="category.php?pk_cat_id=<?php echo $categorylist['pk_cat_id'];?>"><?php echo  $categorylist['category']; ?></a></ul>
      <?php
 if ($categorylist['pk_cat_id'] == $subcategorylist['fk_cat_id'])
    {
     do { ?>
           <li><a href="subcategory.php?pk_cat_id=<?php echo $subcategorylist['pk_sub_cat_id'];?>"><?php echo $subcategorylist['txt_sub_cat']; ?></a></li>
          <?php } while ($subcategorylist = mysql_fetch_assoc($subcategory_query));
        ; } 
    ?>
    <?php } while ($categorylist = mysql_fetch_assoc($category_query));
    ?>

我得到的ATM只有;

类别所有子类别的列表类别空间类别空间类别空间直到类别用完。

您可以使用JOIN(如INNER JOIN)执行单个查询,然后遍历返回的记录集。如果上一个外键与当前外键不同,则您在一个新的主记录上,与主记录相关的{domagic},然后为当前子记录{domagic},否则,仅为当前子纪录{domagiq}。

编辑:

SELECT tm_product_category.*, tlk_sub_cat.* 
FROM tm_product_category INNER JOIN tlk_sub_cat ON
tm_product_category.pk_cat_id = tlk_sub_ca.fk_cat_id

通过在表名前面加一个句点来引用每个表的字段。使用mysql的AFAIK,如果字段是唯一的,可以省略表名,但通常为了完整性而保留。MySQL网站上有关于其他联接类型的文档。