我对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网站上有关于其他联接类型的文档。