填充下拉列表,PHP无法正常工作

时间:2017-02-10 09:59:04

标签: php html sql

我正在尝试将填充了PHP的下拉列表添加到我的网站,但它没有显示任何内容。它是空的as shown in this image。在州内,它什么也没有显示。

请帮我从我的数据库结果中获取一些细节。

我的代码是:

<?php
$con=mysql_connect('localhost', '', '')or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db('')or die("Failed to connect to MySQL: " . mysql_error());
?>

<form>
    <div class="form-group">        
        <div class="form-control-small">
            <select id="search_status" name="state" data-placeholder="State">
                <option value=""> </option>
                <?php
                    $dd_res=mysql_query("Select DISTINCT state from MyTable");
                    while($row=mysql_fetch_row($dd_res))
                    { 
                        echo "<option value='$row[state]'> $row[state] </option>";
                    }
                ?>          
            </select>
        </div>

        <div class="form-control-small">
            <select id="search_bedrooms" name="dist" data-placeholder="District">
                <option value=""> </option>
                    <?php
                        $dd_res=mysql_query("Select DISTINCT dist from MyTable");
                        while($r=mysql_fetch_row($dd_res))
                        { 
                            echo "<option value='$row[dist]'> $row[dist] </option>";
                        }
                    ?>
            </select>
        </div>

        <div>
            <button type="submit" class="btn btn-fullcolor">Search</button>
        </div>
    </div>
</form>

4 个答案:

答案 0 :(得分:0)

尝试这样的事情:

$arr = array(1 => 'MP', 2 => 'UP');

echo '<select>';
foreach($arr as $key => $val)
{
    echo '<option value="'.$key.'">'.$val.'</option>';
}
echo '</select>';

它会生成html,如:

<select>
  <option value="1">MP</option>
  <option value="2">UP</option>
</select>

答案 1 :(得分:0)

即使使用双引号,也无法在字符串中显示数组值。

您必须使用花括号或连接

echo "<option value='{$row[state]}'> {$row[state]} </option>";

echo "<option value='".$row[state]."'> ".$row[state]." </option>";

答案 2 :(得分:0)

试试这个:

 echo "<option value='".$row['state']."'> ".$row['state']."</option>";

答案 3 :(得分:0)

根据文档,mysql_fetch_row()从与指定结果标识符关联的结果中提取一行数据。该行作为数组返回。每个结果列都存储在一个数组偏移量中,从偏移量0开始。

这意味着您无法达到以下列名:$ row [“state”]。

尝试改为:

echo "<option value='$row[0]'> $row[0] </option>";

然而,不推荐使用 mysql_query mysql_fetch_row 函数,它们将在PHP版本7中删除。它也可能是一个问题。考虑升级到更现代的与MySQL交互的方式。 你会在这里找到替代品:

http://php.net/manual/en/mysqlinfo.api.choosing.php