Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何选择<;选择>;来自数据库的语句?_Php_Mysql_Html_Database - Fatal编程技术网

Php 如何选择<;选择>;来自数据库的语句?

Php 如何选择<;选择>;来自数据库的语句?,php,mysql,html,database,Php,Mysql,Html,Database,我不太确定如何正确地表达这个问题,但这只是出于兴趣而已。我经常不得不从数据库加载信息,并用值预先填充表单。因此,对于文本框,很简单,我只需设置值: 使用输出中所需的数据创建一个数组。绕着它转。为其中的每个项目生成一个option元素。作为对Quentin的补充(只是一些帮助您的代码),我也倾向于使用数组,如下所示: <select name="myval"> <?php $options = array( "1" => "O

我不太确定如何正确地表达这个问题,但这只是出于兴趣而已。我经常不得不从数据库加载信息,并用值预先填充表单。因此,对于文本框,很简单,我只需设置值:


使用输出中所需的数据创建一个数组。绕着它转。为其中的每个项目生成一个option元素。

作为对Quentin的补充(只是一些帮助您的代码),我也倾向于使用数组,如下所示:

<select name="myval">
    <?php
        $options = array(
            "1" => "One",
            "2" => "Two"
        );
        foreach ($options as $value => $text) {
            echo '<option value="' . $value . '"' . ($myval == $value ? ' selected' : '') . '>' . $text . '</option>';
        }
    ?>
</select>

有很多方法可以让代码更干净。找到一个或发明自己的:)

对于select语句,我喜欢使用实用程序方法。例如:

<?= HTML::createSelect($name, $actualvalue, $optionslist, $passthrough) ?>


那条线上有东西。从数据库中读取选项列表和实际值。Passthrough用于添加HTML装饰符,例如id、类等。

对于这种重复输出,最简单的方法是自己编写一个函数,例如:

function selectbox(array $options, $name, $value = null) {
    $out = '<select name="' . $name . '">';
    foreach($options as $key => $text) {
        $out .= '<option value="' . $key. '"' . ($key == $value ? ' selected="selected"' : null) . '>' . $text . '</option>';
    }

    return $out . '</select>';
}
函数选择框(数组$options,$name,$value=null){
$out='';
foreach($key=>$text形式的选项){
$out.=''.$text.'';
}
退回$out.';
}

如果语句不
愚蠢
在这种情况下,对于这样一个简单的任务来说似乎有点长而且没有意义。我认为您指定的最后一个选项更好这就是我所做的,但我还有一个函数,我将它传递给它,在参数中,我传递我感兴趣的ID,如果行匹配,我加入
选择的
标记+是的,问我问题的目的是看看别人做了什么。但是我以前从未见过这个-我会查一下。我找不到任何关于HTML::createSelect??这是你自己的函数吗?当然,这是我写的一个方法。这只是一个例子。大多数MVC框架都有类似的“表单助手”来生成表单元素。使代码看起来更干净,你做的更少。@tehlulz我不是在寻找答案,只是建议,如果你看代码本质上与我的相同。@Chud37不,不是这样,你对每个选项都使用if语句,这个答案中的循环只有一个
one
if,并循环所有选项。。
<select name="myval">
    <?php
        $options = array(
            "1" => "One",
            "2" => "Two"
        );
        foreach ($options as $value => $text) {
            echo '<option value="' . $value . '"' . ($myval == $value ? ' selected' : '') . '>' . $text . '</option>';
        }
    ?>
</select>
<?= HTML::createSelect($name, $actualvalue, $optionslist, $passthrough) ?>
function selectbox(array $options, $name, $value = null) {
    $out = '<select name="' . $name . '">';
    foreach($options as $key => $text) {
        $out .= '<option value="' . $key. '"' . ($key == $value ? ' selected="selected"' : null) . '>' . $text . '</option>';
    }

    return $out . '</select>';
}