从数据库中获取和显示组作为菜单链接

时间:2016-04-14 07:14:15

标签: php mysql

首先,我想说我不确定这是否正确,所以如果有更好的方法请告诉我。

我的输入表单上有很少的下拉列表和复选框。我希望管理员可以通过后端访问它们,并且能够编辑/删除/创建新的。

我使用form_fieldfield_idfield_name在数据库group_id中创建了表格。 group_id是我存储的地方,下拉菜单是这个字段。例如,带有选择选项的下拉类别:Category_1Category_2 ... Category_n。在数据库表中将是:

field_id    field_name    group_id
   1        Category_1       1
   2        Category_2       1
   3        Category_n       1

页面上的下一个下拉列表将是group_id = 2 .. 现在我想将它们放在管理页面上,如:

Manage "Category"
Manage "Some other dropdown group"
etc

如何循环表格以使名称Manage "Category"成为链接并取group_id=1,接下来将Manage "Some other dropdown group" group_id=2 ...等等。这就是我的想法它会,但它只显示我第一组,因为这是条件..

    $sql = $pdo->prepare("SELECT * FROM form_fields");  
    $sql->execute(); 
    $row = $sql->fetch();                       

    if($row['group_id'] == 1){
            echo '<li><a href="drops.php?group_id='.$row['group_id'].'"><i class="fa fa-angle-double-right"></i> Manage "Category_1"</a></li>';
    } elseif($row['group_id'] == 2) {
            echo '<li><a href="drops.php?group_id='.$row['group_id'].'"><i class="fa fa-angle-double-right"></i> Manage "Category_2"</a></li>';
    } elseif($row['group_id'] == 3) {
            echo '<li><a href="drops.php?group_id='.$row['group_id'].'"><i class="fa fa-angle-double-right"></i> Manage "Category_3"</a></li>';
    } elseif($row['group_id'] == 4) {
            echo '<li><a href="drops.php?group_id='.$row['group_id'].'"><i class="fa fa-angle-double-right"></i> Manage "Category_4"</a></li>';
    }

看起来很简单,但我坚持这个......

1 个答案:

答案 0 :(得分:0)

您正在从表中选择所有内容,这样您就可以返回多行。为此,您需要像这样遍历行:

<?php

$sql = $pdo->prepare("SELECT * FROM form_fields");  
$sql->execute();
$rows = $sql->fetch();

$html = [];
foreach ($rows as $row) {
    $html []= '<li><a href="drops.php?group_id='.$row['group_id'].'"><i class="fa fa-angle-double-right"></i> Manage "' . $row['field_name'] . '"</a></li>';
}
echo join("", $html);

?>

希望这是你正在寻找的。