gpt4 book ai didi

php - (PHP) 根据 mysql 值归类到 html opgroup

转载 作者:行者123 更新时间:2023-11-30 23:12:42 25 4
gpt4 key购买 nike

基本上我有一个包含 66 本圣经书籍的数据库;有些来自旧约,有些来自新约。 bname 值是书的名称,而 bsect 的值为 O 或 N(新的或旧的),我怎样才能让我的下拉框动态地将一本书显示到旧的或新的 optgroup 中,这取决于它的 bsect 是 O还是N?我的老师说我必须做一些阵列,但我不知道该怎么做。有什么想法吗?

我的数据库示例:

+-----------+-------+
| bname | bsect |
+-----------+-------+
| Genesis | O |
| Exodus | O |
| Leviticus | O |
+-----------+-------+

我不想依赖基于条目数的手动设置操作组,我希望它基于 bsect 的值是动态的。

现在我只有以下查询和一个选择下拉列表,它根据记录号将书放入旧书或新书,但如果要添加更多书,它将中断

    $query = $mysqli->query("select distinct bname as Name from kjv");



?>

<select name="book">
<?php
$i=1;
while($option = $query->fetch_object()){
if($i==1) echo "<optgroup label='Old Testament'>";
else if($i==40) echo "<optgroup label='New Testament'>";
echo "<option value='$i'>".$option->Name."</option>";
$i++;

}

?>

最佳答案

简单的bsect排序,动态显示不同的optgroup

<?php
$query = $mysqli->query("SELECT DISTINCT bsect, bname AS Name FROM kjv ORDER BY bsect");
?>

<select name="book">
<?php
$i = 1;
$bsect = "";
while($option = $query->fetch_object()){
if($bsect != $option->bsect) {
$bsect = $option->bsect;
echo "<optgroup label='{$bsect}'>";
}
else if($i==40) echo "<optgroup label='New Testament'>";
echo "<option value='$i'>".$option->Name."</option>";
$i++;

}
?>

当然,那你的书可能坏了。所以你想要做的是添加一个书籍订购列(边框),它存储一个数字,定义如何订购给定组中的书籍,例如

ALTER TABLE kjy 
ADD COLUMN border INT U?NSIGNED NOT NULL DEFAULT 0;

然后您可以更新数据以获得正确的图书顺序并执行如下查询:

SELECT DISTINCT bsect, bname AS Name FROM kjv ORDER BY bsect, border;

当然,这是圣经,您不会添加书籍,因此您可以只定义一个静态书籍 ID,用于定义每本书的序号。然后,您只需按 ID 排序,就可以知道“旧”和"new"书籍的出版顺序是正确的。

ALTER TABLE kjy 
ADD COLUMN id INT UNSIGNED NOT NULL PRIMARY KEY BEFORE (bname);

关于php - (PHP) 根据 mysql 值归类到 html opgroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19211658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com