从mysql表

时间:2016-06-23 14:55:16

标签: php mysql checkbox

我想从MySQL数据库写出复选框的详细信息。复选框结构应该看起来像6 * 6平方。 (6列一列,6列一列)。

MySQL数据库看起来像:

|id|package|
|1 |HEI    |
|2 |TAG    |
|...|

我写了这个函数(在php中)

function getPackages3()
{
    $con = openLockMySQLdb('labcom', 'packages', 'READ');

    $q = mysql_query("SELECT id, package FROM packages ORDER BY package ASC", $con);
    while($row = mysqli_fetch_array($q)) {
        $packages .= '<ul>' . '<li>' . '<label>' . '<input type="checkbox" class="packages_2" id="tab_packages" name="' . $row['package'] . '" value="' . $row['id'] . '-' . $row['package'] . '">' . '<p class="checkbox_label">' . $row['package'] . '</p>' . '</label>' . '</ul>' . '</li>';
    }

    closeUnlockMySQLdb($con);

    return $packages;
}

进入复选框,它正在工作,但我不能只在一行6和一列6。所以我不能从复选框中找到一个正方形。

1 个答案:

答案 0 :(得分:1)

我想你的数据库表包含6 * 6 = 36个包,对吗?那么唯一的问题是在每第6个条目之后有一种“换行”。

在这种情况下,我更喜欢CSS解决方案,并使用nth-of-type()选择器。但是您需要将<ul>标记移出循环:

function getPackages3()
{
    $con = openLockMySQLdb('labcom', 'packages', 'READ');

    $q = mysql_query("SELECT id, package FROM packages ORDER BY package ASC", $con);
    $packages = '<ul>';
    while($row = mysqli_fetch_array($q)) {
        $packages .= '<li>' . '<label>' . '<input type="checkbox" class="packages_2" id="tab_packages" name="' . $row['package'] . '" value="' . $row['id'] . '-' . $row['package'] . '">' . '<p class="checkbox_label">' . $row['package'] . '</p>' . '</label></li>';
    }
    $packages .= '</ul>';

    closeUnlockMySQLdb($con);

    return $packages;
}

CSS就像那样:

li {
    float: left;
}
li:nth-of-type(6n) {
    clear: left;
}

我保留了对数据库函数的调用,即使它们使用混合库(请参阅@jeff中的注释),因为它是一个不同的问题,但要使其工作,您还必须解决这个问题。