无法生成带有mysql查询的表单

时间:2013-08-02 11:13:27

标签: php mysql forms option

我想生成一个带有mysql查询选项的表单。我写的代码是:

echo "<form action='buscar_ropa.php' method='post' enctype='multipart/form-data'>";
                while ($f =  mysqli_fetch_array($busca)){
                    $f =  mysqli_fetch_array($busca);
                    $prenda=makestring($f);

                    echo" <select name='prenda'>";
                        echo "<input type='option' name='$prenda' value='' /><br/>";
                        echo "<input type='submit' name='boton' value='buscar' />";
                    echo "</select>";
                }
echo "</form>";

但它没有正确生成它,表单看起来像这样

http://i.stack.imgur.com/6dupK.png

请帮忙吗?

3 个答案:

答案 0 :(得分:0)

试试这个:

echo "<form action='buscar_ropa.php' method='post' enctype='multipart/form-data'>";
                while ($f =  mysqli_fetch_array($busca)){
                    $f =  mysqli_fetch_array($busca);
                    $prenda=makestring($f);

                    // Please escape your string properly for inserting it in HTML
                    // $prenda = htmlentities($prenda, ENT_QUOTES);

                    echo " <select name='prenda'>";
                        echo "<option value='$prenda'>$prenda</option>";
                    echo "</select>";
                }
echo "<input type='submit' name='boton' value='buscar' />";
echo "</form>";

答案 1 :(得分:0)

选择标签结构不正确。

echo "<select name='prenda'>";
    echo "<option value='{$prenda}'>{$prenda}</option>";
echo "</select>";
echo "<input type='submit' name='botton' value='submit' />";

答案 2 :(得分:0)

根据你的想法做什么?也许这就是你想要的:

echo "<form action='buscar_ropa.php' method='post' enctype='multipart/form-data'>";
echo" <select name='prenda'>";
while ($row = mysqli_fetch_array($busca)) {
    echo "<input type='option' name='$row[0]]' value='' />";
}
echo "</select>";
echo "<input type='submit' name='boton' value='buscar' />";
echo "</form>";

这使得每一行第一个元素作为下拉选择中的一个选项(名称)。

在您的代码和其他答案中,您将为从数据库获得的每一行创建一个带有一个选项的下拉列表。

你也可以进行双重抓取!我认为你只会获得查询返回的偶数行:

while ($f =  mysqli_fetch_array($busca)){
    $f =  mysqli_fetch_array($busca); 

如果您获得SELECT名称,值FROM ...(来自您的数据库),您还可以使用$ row [1]作为值

如果你想在其他地方使用sql查询的数据,我建议将结果保存在数组中(以你需要的方式):

while ($row = mysqli_fetch_array($result)) {
    $array-f = array('id' => $row['0'], 'name' => $row['2']);
}
/*then you use*/
foreach($array-f as array-f-row) {
    echo array-f-row['id'] . ' & ' . array-f-row['name'];
}