Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.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+HTML:动态创建表单_Php_Html_Forms_Post - Fatal编程技术网

PHP+HTML:动态创建表单

PHP+HTML:动态创建表单,php,html,forms,post,Php,Html,Forms,Post,我试图根据数据库中表的行数动态创建表单。我试过这个,但它不起作用: require_once('mysqli_connect.php'); //I select the colum w_spanish from the table selected by the user $q="SELECT w_spanish FROM ".$_GET['name']; $r=@mysqli_query($dbc, $q); echo '<FORM METHOD="POST" ACTION="Co

我试图根据数据库中表的行数动态创建表单。我试过这个,但它不起作用:

require_once('mysqli_connect.php');

//I select the colum w_spanish from the table selected by the user
$q="SELECT w_spanish FROM ".$_GET['name'];

$r=@mysqli_query($dbc, $q);

echo '<FORM METHOD="POST" ACTION="Correction.php">';
echo '<TABLE BORDER="1">';

//Here is where I generate dinamically a table that can be filled by user
while ($row=mysqli_fetch_array($r, MYSQLI_ASSOC)){

$aux=$row['w_spanish'];
echo '<TR><TD>'.$aux.'</TD><TD><INPUT TYPE="TEXT" NAME="Sol_'.$aux.'" SIZE="20"></TD></TR>';

}

echo '</TABLE>';
echo '<P><INPUT TYPE="SUBMIT" VALUE="Submit" ></P></FORM>'; 


mysqli_close($dbc);
所以当我按submit时,信息不会发送到Correction.php,我想这是因为我在php代码中创建了HTML表单。如何才能正确地执行此操作???

首先声明$row,然后使用do while循环

$row = mysqli_fetch_array($r, MYSQLI_ASSOC) do{  
    $aux=$row['w_spanish']; 
    echo '<TR><TD>'.$aux.'</TD><TD><INPUT> TYPE="TEXT"NAME="Sol_'.$aux.'" SIZE="20"></TD></TR>';
 }while ($row=mysqli_fetch_array($r, MYSQLI_ASSOC))

首先-从@mysqli语句中删除@,因为它掩盖了可能发生的任何错误

其次,将生成的代码粘贴到中,查看是否有任何HTML错误,并在必要时进行调整


第三,由于用户可以选择要读取的表,因此您的数据需要进行超级清理,因为您肯定不希望在此处受到sql注入攻击。

问题可能在于您正在运行的查询。如果不知道更多信息,我猜您的查询将一无所获。尝试在每次迭代中转储该行,并查看结果。您可能正在寻找以下内容:

$q="SELECT w_spanish FROM tableName WHERE name = " . $_GET['name'];
如果不是这样,也可能是因为您只从数据库中获取了一列,所以不需要使用$aux=$row['w_西班牙语'];访问信息;。您只需使用:

$aux=$row;

但我不是百分之百的相信。尝试用var_dump转储每一行,看看会弹出什么

如果您按下submit会发生什么?您是否验证了查询是否返回正确的结果?@Bart Friederichs尝试调用不存在的文件时出错。但是Correction.php并不存在,它被放在服务器的forrect文件夹中。例如,如果我创建了相同的表单,但都是HTML格式的,并且生成了具有固定行数的表,那么一切都可以正常工作,我可以完美地访问Correction.php。那么它要获取哪个文件?您可以在php代码中创建HTML表单。我不认为这是问题所在。这会改变什么?手动获取一行,然后使用do/while循环在功能上与使用普通while循环相同。谢谢!!所有的信息。我是PHP新手,我的代码仍然很混乱