首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表单不会将数据发送给mysql

问表单不会将数据发送给mysql
EN

Stack Overflow用户
提问于 2014-01-15 19:41:01
回答 4查看 160关注 0票数 0

我正在尝试编写一个表单,该表单从mysql db获取一些数据,其余的则由我自己填写。问题是,在add.php中,如果插入到mysql,就不会从表单中获取数据。我的密码是:

代码语言:javascript
复制
    <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>

add.php:

代码语言:javascript
复制
    <?php
    $con = mysql_connect("localhost","db","pass") or die('Could not connect: '  .mysql_error());
mysql_select_db("db", $con) or die(mysql_error());

$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', '$std', '$adt', '$delay', '$net', '$gros', '$core', '$acs', '$tot')";
$result=mysql_query($sql);
if($result){
echo "Successful";
echo "<BR>";
}
else {
echo "ERROR";
}
?> 

知道我怎样才能让它起作用..。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-15 19:49:44

在add.php中,您检查的是$row而不是$_POST。它应该是:

代码语言:javascript
复制
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是不推荐的。

票数 1
EN

Stack Overflow用户

发布于 2014-01-16 12:16:57

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

代码语言:javascript
复制
echo '<td><input type="int" name="acs" id="acs" placeholder="ACS"></td>'

和

代码语言:javascript
复制
$asc = mysql_real_escape_string($_POST['asc']);

所以你必须读你的密码,检查你的拼写。

这里还有一个:

$dest = $row['dest'];

$std = $row['dest'];

这应该是这样的:

代码语言:javascript
复制
$dest = $row['dest'];
$std = $row['std'];
票数 0
EN

Stack Overflow用户

发布于 2014-01-16 12:39:56

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

代码语言:javascript
复制
    <input type="hidden" name="test" id="test" value="<?php echo $row['flightnr'];?>"/>        

嗨..。首先,必须在特定的隐藏字段中存储一个值$row‘’flightnr‘,然后使用$_POST’‘test’获取实际值。

代码语言:javascript
复制
    $flightnr=$_POST['test'];       

错误的原因..。php只读取由html输入字段发送的数据,这样就可以使用php服务器变量$_请求‘html _php_ field’从输入字段html中获取这些值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21146680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档