MySQL的输出

时间:2013-07-18 12:13:31

标签: php html mysql forms

我的MySQL数据库输入和输出有点问题。问题出在我网页的一个部分。当我通过a在我的页面中输入供应商的名称时,它会记录在MySQL数据库中。但是,当我使用与该供应商跟踪某些信息的另一个表格的输入相同的名称时,另一个表格仅记录供应商名称的第一个单词,例如:

(供应商表中的数据):名称:ABC Co. Ltd.
(使用此供应商名称提交第二次表单后的数据输出):名称:ABC

我已经为这两个表附加了架构。

不幸的是,整个名字没有记录在数据库中。我希望这很清楚。请让我知道我能做些什么。提前致谢!RTGS Table:This is the second table, ie the one which takes as input only part of the name.

Supplier Table: This is the first table, the one which forms the input to the rtgs table.

以下是将数据输入到帖子中第一个表格的代码。此表单使用“select”标记,该标记根据第二个表中的DB条目进行更新。

<?php
include ('navbar.php');
mysql_connect('localhost','USERNAME','PASSWORD');
mysql_select_db(rtgs);
?>
<html>
<head>

    <title>
    </title>

</head>
<body>
    <center>
    <div class="form">

            <form action="ntxn.php" method="post">

            <table>
                    <tr>
                            <td>Supplier Name:</td>


                            <td>
                                <?php                                    


                                echo "<select name='supplier'>";
                                $result = mysql_query("SELECT supname FROM supplier");
                                while ($row = mysql_fetch_assoc($result))
                                                {
              echo "<option value=" . $row['supname'].">" . $row['supname'] ."</option>";

                                                }

                                echo "</select>";                                       
                                ?>
                            </td>
<td><button><a style="text-decoration:none"href="newsup.php">Add New?</a></button></td>
                    </tr>

                    <tr>
                            <td>Bill No. :</td>
                            <td><input type ="text" name="billno"/></td>
                    </tr>

                    <tr>
                            <td>Bill Date : </td>
                            <td><input type="date" name="billdate"/></td>
                    </tr>

                    <tr>
                            <td>Bill Amount : </td>
                            <td><input type="text" name="billamt"/></td>
                    </tr>

                    <tr>
                            <td>NEFT / RTGS No. :</td>
                            <td><input type="text" name="rtgs"/></td>
                    </tr>

                    <tr>
                            <td><input type="submit" name="submite" value="Save"/></td>
                    </tr>

            </table>
    </form>
    </div>
    </center>
</body>
</html>


这是将数据输入到第二个表的代码,即此表中的数据用作上面显示的“select”标签的输入。我的问题是,即使表2中的数据完整(ABC有限公司),表1中的数据仅将ABC作为输入。希望这使我的问题清楚。 :)

<?php

include ('navbar.php');

mysql_connect('localhost', 'USERNAME', 'PASSWORD');
mysql_select_db(rtgs);

$result = mysql_query("INSERT INTO supplier VALUES 
        (NULL,'$_POST[supname]','$_POST[add1]','$_POST[add2]','$_POST[tin]',
        '$_POST[ed]','$_POST[ph]','$_POST[email]')");


if(!$result){
    echo "Could not add entry to database" . mysql_error();
}

else
{   
    echo "<center>";
    echo "Supplier added successfully!";
    echo "<center>";
}

echo "<center>";

echo "What would you like to do next?";
echo "<br/>";
echo "<br/>";

echo "<button><a style='text-decoration:none' href=index.html>Home</a></button>";
echo "<button><a style='text-decoration:none' href=newsup.php>Add another</a>/button>";
echo "<button><a style='text-decoration:none' href=newtxn.php>New TXN</a></button>";

echo "</center>";

?>

1 个答案:

答案 0 :(得分:0)

选项元素缺少值属性周围的双引号:

echo "<option value=" . $row['supname'].">" . $row['supname'] ."</option>";

应该是:

echo '<option value="' . $row['supname'] . '">' . $row['supname'] . '</option>';

由于supname字符串没有用引号分隔,浏览器只发布第一个单词(直到第一个空格,假设下一个单词是另一个属性)。