Php 表单不会将数据发送到mysql

Php 表单不会将数据发送到mysql,php,mysql,forms,Php,Mysql,Forms,我试图编写一个表单,从mysql数据库获取一些数据,其余的我必须自己填充。问题是在add.php中,witch insert to mysql不能从表单中获取数据。 我的代码是: <form action="add.php" method="post"> <table border="0px" align="center" width="300px"> <tr align="center"&g

我试图编写一个表单,从mysql数据库获取一些数据,其余的我必须自己填充。问题是在add.php中,witch insert to mysql不能从表单中获取数据。 我的代码是:

    <form action="add.php" method="post">
                <table border="0px" align="center" width="300px">

                <tr align="center">
                <td><h2>Flight</h2></td>
                <td><h2>Org</h2></td>
                <td><h2>Dest</h2></td>
                <td><h2>STD</h2></td>
                <td><h2>ATD</h2></td>
                <td><h2>Delay</h2></td>
                <td><h2>NET</h2></td>
                <td><h2>Gros</h2></td>
                <td><h2>Core Material</h2></td>
                <td><h2>ACS</h2></td>
                <td><h2>Total sorted</h2></td>

                </tr>
                <?php
$con = mysql_connect("localhost","db","pass") or die('Could not connect: ' .mysql_error());
mysql_select_db("db", $con) or die(mysql_error());
$q="SELECT flightnr, org, dest, std FROM flight";
$sql = mysql_query($q) or die("MySQL ERROR: ".mysql_error());
while($row = mysql_fetch_array($sql))
                    {
                        $flightnr2 = $row['flightnr'];
        $org2 = $row['org'];
        $dest2 = $row['dest'];
        $std2 = $row['std'];
                        }
                        ?>
                             <tr>
                             <td><input type="text" name="flightnr" value="<?php echo $flightnr2;?>" /></td>
                             <td><input type="text" name="org" id="org" value="<?php echo $org2;?>" /></td>
                             <td><input type="text" name="dest" id="dest" value="<?php echo $dest2;?>" /></td>
                             <td><input type="text" name="std" id="std" value="<?php echo $std2;?>" /></td>
                             <td><input type="time" name="adt" id="adt" placeholder="ATD"></td>
                             <td><input type="time" name="delay" id="delay" placeholder="Delay"></td>
                             <td><input type="int" name="net" id="net" placeholder="NET"></td>
                             <td><input type="int" name="gros" id="gros" placeholder="Gros"></td>
                             <td><input type="int" name="core" id="core" placeholder="Core Material"></td>
                             <td><input type="int" name="acs" id="acs" placeholder="ACS"></td>
                             <td><input type="int" name="tot" id="tot" placeholder="Total sorted"></td>
                             <td><input type="submit" value="Submit"></td>
                            </tr>
                        </table>
                        </form>

航班
组织机构
目的地
性病科
ATD
延迟
网
格罗斯
芯材
ACS
总分类

在add.php中,您将检查$row而不是$u POST。 应该是:

if (isset($_POST['atd']) && isset($_POST['..']) && ... )
{
    $values = Array($_POST['atd'], $_POST['..'], ...);
    $values = array_map("mysql_real_escape_string", $values);
    $sql = "INSERT INTO fly (date, flightnr, org, dest, std, adt, delay, net, gros, core, asc, tot) VALUES ('" . implode(',', $values) . "');";
}

无论如何,您应该使用PDO或MySQLi,因为MySQL已被弃用。

这里有很多拼写错误和错误。。看看这个:

echo '<td><input type="int" name="acs" id="acs" placeholder="ACS"></td>'
所以你真的必须阅读你的代码,检查你的拼写

这里还有一个:

$dest=$row['dest']

$std=$row['dest']

这应该是这样的:

$dest = $row['dest'];
$std = $row['std'];

在表单中添加隐藏字段,如 "> 在add.php文件中,获取如下数据 $flightner=$_POST['flightnr']; 然后将sql查询插入

    <input type="hidden" name="test" id="test" value="<?php echo $row['flightnr'];?>"/>        
错误原因。。。
php只读取由html输入字段发送的数据,因此您可以使用php服务器变量$\u REQUEST['html\u input\u field']]从输入字段html中获取这些值。

我现在已经让它工作了。.我的新代码是:

$q="SELECT flightnr, org, dest, std FROM flight";
$sql = mysql_query($q) or die("MySQL ERROR: ".mysql_error());
while($row = mysql_fetch_array($sql))
                    {
        $flightnr2 = $row['flightnr'];
        $org2 = $row['org'];
        $dest2 = $row['dest'];
        $std2 = $row['std'];
                        }
                        ?>
                             <tr>
                             <td><input type="text" name="flightnr" value="<?php echo $flightnr2;?>" /></td>
                             <td><input type="text" name="org" id="org" value="<?php echo $org2;?>" /></td>
                             <td><input type="text" name="dest" id="dest" value="<?php echo $dest2;?>" /></td>
                             <td><input type="text" name="std" id="std" value="<?php echo $std2;?>" /></td>

你是从哪里学来编写这样的表单的?我很好奇。我在Stack Overflow上看到了很多这样的代码,我想知道人们从哪里得到了他们的引用。我在代码中尝试了一些东西..,删除了som错误..,得到了一些新的..:P我想我做了一些正确的事情..,并将信息传递到add.php。但是当我取消脚本。有人能看一下文件,看看我做错了什么吗?你必须逃避。你在这里做的是鲁莽的。最初的问题自由地使用了
mysql\u real\u escape\u string
,这是你最起码应该做的,你不知怎么地删除了它,引入了一个巨人。现在你正在逃避整个事情,嵌入使用逗号。这比以前更糟糕。你需要的是,如果你打算提倡这种批量方法。笨重,虽然更好。这就是为什么使用
mysql\u query
是一种痛苦,也是使用PDO的另一个原因,正如你所指出的。所有拼写错误在我的第一篇文章中都得到了修复。我尝试使用AleVale的代码。但是没有当我点击“提交”按钮时,事情发生了……我已经阅读了有关隐藏字段的内容……但我无法理解您的意思。如果我使用$flightnr=$\u POST['flightnr'],拉出数据,我会得到错误:未定义索引:flightnr
    <input type="hidden" name="test" id="test" value="<?php echo $row['flightnr'];?>"/>        
    $flightnr=$_POST['test'];       
$q="SELECT flightnr, org, dest, std FROM flight";
$sql = mysql_query($q) or die("MySQL ERROR: ".mysql_error());
while($row = mysql_fetch_array($sql))
                    {
        $flightnr2 = $row['flightnr'];
        $org2 = $row['org'];
        $dest2 = $row['dest'];
        $std2 = $row['std'];
                        }
                        ?>
                             <tr>
                             <td><input type="text" name="flightnr" value="<?php echo $flightnr2;?>" /></td>
                             <td><input type="text" name="org" id="org" value="<?php echo $org2;?>" /></td>
                             <td><input type="text" name="dest" id="dest" value="<?php echo $dest2;?>" /></td>
                             <td><input type="text" name="std" id="std" value="<?php echo $std2;?>" /></td>
$date = date("D-m-Y");
$flightnr = $_POST['flightnr'];
$org = $_POST['org'];
$dest = $_POST['dest'];
$std = $_POST['dest'];
$adt = mysql_real_escape_string($_POST['adt']);
$delay = mysql_real_escape_string($_POST['delay']);
$net = mysql_real_escape_string($_POST['net']);
$gros = mysql_real_escape_string($_POST['gros']);
$core = mysql_real_escape_string($_POST['core']);
$acs = mysql_real_escape_string($_POST['acs']);
$tot = mysql_real_escape_string($_POST['tot']);

$sql = "INSERT INTO fly ".
"(date, flightnr, org, dest, std, adt, delay, net, gros, core, acs, tot) ".
"VALUES ('$date', '$flightnr', '$org', '$dest', '$std', '$adt', '$delay', '$net', '$gros', '$core', '$acs', '$tot')";
$retval = mysql_query( $sql, $con );
if(! $retval )
{
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($con);

?>