0

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

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

我已经附上了有问题的两个表的架构。

不幸的是,全名没有记录在数据库中。我希望这很清楚。请让我知道我能做什么。提前致谢!RTGS 表:这是第二个表,即仅将名称的一部分作为输入的表。

供应商表:这是第一个表,形成 rtgs 表的输入。

以下是将数据输入到我的帖子中的第一个表的代码。此表单使用“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>


这是向第二个表输入数据的代码,即,该表中的数据用作上面显示的“选择”标签的输入。我的问题是,即使表 2 中的数据是完整的(ABC Co. Ltd.),表 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>";

?>
4

1 回答 1

0

选项元素在 value 属性周围缺少双引号:

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

应该:

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

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

于 2013-07-19T08:38:18.900 回答