Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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_Html - Fatal编程技术网

Php 从数据库中选择默认选项

Php 从数据库中选择默认选项,php,html,Php,Html,我在选择中设置默认文本时遇到问题。(选项列表)。所以,我的选择是在数据库中存储。像varchar测试选项 现在如果我在代码中这样做 <select name="category"> <option selected="selected"><?=$ad['category']?></option> <?php echo $options; ?> </select> 这是可行

我在选择中设置默认文本时遇到问题。(选项列表)。所以,我的选择是在数据库中存储。像
varchar
测试选项

现在如果我在代码中这样做

 <select  name="category">  <option  selected="selected"><?=$ad['category']?></option> <?php echo $options; ?> </select>

这是可行的,但在我的列表中有两个相同的值。 我的全部代码

              <?php

                while($category = mysqli_fetch_array($q)):;

                 ?>

              <option> value="<?php echo $category[0];?>" <?php echo $category[1];?> </option>"

               <?php endwhile; ?>


                

               <select  name="category">  <option  selected="selected"><?=$ad['category']?></option> <?php echo $options; ?> </select>
                
 
<?php

value=”“”

好的,实际情况是,您正在获取一个数组,但您希望该选项不会被打印。然后,您首先拥有所选的选项,即:

<?php $ad['category']; ?>

然后,您必须做的唯一一件事是,在获取数组时,如果该选项等于所选选项,则不会打印该选项,因此:

   $q2 = mysqli_query($con,$q22222);
    $options = "";
     while($row2 = mysqli_fetch_array($q2))
     {
         if($row2[1]!=$selected){
              $options = $options."<option>$row2[1]</option>";
         }
     }
$q2=mysqli\u查询($con,$q2222);
$options=“”;
而($row2=mysqli_fetch_数组($q2))
{
如果($row2[1]!=$selected){
$options=$options.“$row2[1]”;
}
}

如果不想再次从数据库中获取相同的选项,可以在SELECT查询中使用
SELECT DISTINCT
语句

并且还要处理选项与您选择的默认选项不同的情况

while($row2 = mysqli_fetch_array($q2))
{
    if($row2[1] != $selected) $options = $options."<option>$row2[1]</option>";
}
while($row2=mysqli\u fetch\u数组($q2))
{
如果($row2[1]!=$selected)$options=$options.“$row2[1]”;
}

>B
>D

试试看

选择列表中的内容是否来自两个不同的来源?
$q
$q2
是否只是同一代码的修订版?所选值来自何处,是用户输入的吗?您的代码一开始似乎没有什么意义-首先在循环中输出两个
,然后直接输出然后是一个
?谢谢,它可以工作了
while($row2 = mysqli_fetch_array($q2))
{
    if($row2[1] != $selected) $options = $options."<option>$row2[1]</option>";
}
<select >
    <option value="1" <?php if ($Defaultselection == 1) echo "selected"; ?>>A</option>
    <option value="2" <?php if ($Defaultselection == 2) echo "selected"; ?>>B</option>
    <option value="3" <?php if ($Defaultselection == 3) echo "selected"; ?>>C</option>
    <option value="4" <?php if ($Defaultselection == 4) echo "selected"; ?>>D</option>
</select>