回显<input />并使用变量作为名称

时间:2015-09-27 19:48:23

标签: php html mysql input

我的代码有问题。我想插入变量$ columnnames作为复选框的名称。我尝试了几件事,但没有人成功。

<?php
mysql_connect("host", "user", "password") or die("Connection Failed");
mysql_select_db("database")or die("Connection Failed");
$query = "select * from table";
$result = mysql_query($query);
$numcolumn = mysql_num_fields($result);
for ( $i = 0; $i < $numcolumn; $i++ ) { $columnnames = mysql_field_name($result, $i);

echo "<input type='checkbox' name='".$columnnames."' value='yes'>" .str_replace('_', ' ', $columnnames)."\n";
}
?>

当我运行代码时,它看起来像这样:

<input type="checkbox" name="" value="1">

空名?

3 个答案:

答案 0 :(得分:2)

你可以试试这个。

while ($row = mysql_fetch_array($result)) {
    foreach($row as $key => $value) {
        echo "<input type='checkbox' name='" . $key . "' value='" . $value . "'>" . str_replace('_', ' ', $key) . "\n";
    }
}

这有帮助吗?

答案 1 :(得分:1)

你可以这样使用

\

答案 2 :(得分:-1)

如果其他一切正常(您的数据库连接,查询,结果等)以及正确的<form>标记。

这是一个证明它有效的例子:

<?php
$columnnames = "Hawas_Ka_Pujaari";
echo "<input type='checkbox' name='".$columnnames."' value='yes'>" .str_replace('_', ' ', $columnnames)."\n";
?>

Since I could not find any PHP/HTML online compiler

修改

在给它几个读取之后,这些是你应该检查/干燥调试的东西(或者用我们的语言: Desi Debugging

1) echo $result = mysql_query($query);,看看你得到了什么?因为查询失败的可能性很大(没有给你任何错误,因为你没有启用错误报告,仍然使用不再支持的已弃用的 mysql函数)。

2) mysql_field_name();返回记录集中字段的名称因此,如果查询首先失败,则此&gt; $columnnames = mysql_field_name($result, $i);是没用的。 (再次已弃用的 mysql函数)

  

注意:考虑到您的连接成功并且   不像mysql_connect("host", "user", "password")那样   选择了正确的有效表后,Oh table是MySQL中的保留字   比如评论中提到的Robbie Averill,所以你应该考虑改变   那也是。而且查询成功的事实应该如此   工作