我正在尝试构建一个更新mySql数据库的简单表单。 如果我在页面上只有1个表单元素(输入),但我无法弄清楚每个pgae如何拥有多个表单元素(输入),我可以成功。
当我添加多个输入时,数据库将不会添加任何内容。
我知道我的代码很接近,但我对它的确切位置和做法感到茫然。
P.S。 - 我还是新手,正在学习......
这就是我所拥有的
<?php
$host = 'hostName';
$user = 'userName';
$password = 'password';
$link = mysql_connect($host, $user, $password);
$selected = mysql_select_db('dbName', $link);
if(!isset($_POST['text-input']))
{
echo '<html>
<body>
<form action="post.php" method="post">
<input type="text" name="text-input" id="text-input" value="Update MyDataColumn" style="width:300px;" />
<input type="submit" value="Submit" />
</form>
</body>
</html>'; }
else {
$form_input = $_POST['text-input'] ;
mysql_query('INSERT INTO `tableName` (columnName) VALUES ("' . $form_input . '");');
echo '
<html>
<body>
<script type="text/javascript">
alert(\'Database now contains: <?php echo $form_input ?>. Redirecting...\');
window.location = \'http://url.com\';
</script>
</body>
</html>';
}
?>
我想了解如何发布到同一个db / table中的众多列。
好的,从下面的答案中我修改了代码,如下所示:
<?php
$host = 'dbHost';
$user = 'dbUser';
$password = 'dbPassword';
$link = mysql_connect($host, $user, $password);
$selected = mysql_select_db('dbName', $link);
if(!isset($_POST['text-input']))
{
echo '
<form action="index.php" method="post">
<input type="text" name="text-input" id="text-input" value="Update itemName" style="width:300px;" />
<input type="text" name="text-input2" id="text-input2" value="Update itemDescription" style="width:300px;" />
<input type="text" name="text-input3" id="text-input3" value="Update productID" style="width:300px;" />
<input type="text" name="text-input4" id="text-input4" value="Update itemPrice" style="width:300px;" />
<input type="submit" value="Submit" />
</form>'
; }
else {
$form_input = $_POST['text-input'] ;
$form_input2 = $_POST['text-input2'] ;
$form_input3 = $_POST['text-input3'] ;
$form_input4 = $_POST['text-input4'] ;
mysql_query('INSERT INTO `items` (itemName, itemDescription, productID, itemPrice)
VALUES ("' . $form_input . '", "' . $form_input2 . '", "' . $form_input3 . '", "' . $form_input4 . '");
echo '
<html>
<body>
<script type="text/javascript">
alert(\'Database has been updated. Redirecting to previous url.\');
window.location = \'http://url.com\';
</script>
</body>
</html>';
}
?>
这段代码会发生什么? 语法错误,意外&#39;&gt;&#39;
答案 0 :(得分:1)
您只需修改查询即可设置多个列。
HTML:
<form action="post.php" method="post">
<input type="text" name="text-input" id="text-input" value="Update MyDataColumn" style="width:300px;" />
<input type="text" name="text-input2" id="text-input2" value="Update MyDataColumn2" style="width:300px;" />
<input type="text" name="text-input3" id="text-input3" value="Update MyDataColumn3" style="width:300px;" />
<input type="submit" value="Submit" />
</form>
PHP:
$form_input = $_POST['text-input'] ;
$form_input2 = $_POST['text-input2'] ;
$form_input3 = $_POST['text-input3'] ;
mysql_query('INSERT INTO `tableName` (columnName, columnName2, columnName3) VALUES ("' . $form_input . '","' . $form_input2 . '","' . $form_input3 . '");');
答案 1 :(得分:0)
在HTML输出中,您需要添加另一个类似于此的字段(已在您的代码中):
<input type="text" name="text-input" id="text-input"
value="Update MyDataColumn" style="width:300px;" />
但是,它必须有一个不同的“名字”(!);
<input type="text" name="text-input2" id="text-input2"
value="Another Input" style="width:300px;" />
现在我们从$ _POST数组中取出新变量(“text-input2”),如下所示:
$form_input = $_POST['text-input']; // Your code...
$form_input2 = $_POST['text-input2']; // for the new input field
我们需要将SQL命令更改为:
mysql_query('INSERT INTO `tableName` (columnName) VALUES ("' . $form_input . '");
mysql_query('INSERT INTO `tableName` (columnName) VALUES ("' . $form_input2 . '");
上面的SQL命令会将两个表单输入添加为表中的单独行,它们不会相互连接。 要将它们放在同一行中,您需要先更改表格并为其添加另一列。 SQL命令是:
ALTER TABLE tableName ADD columnName2 VARCHAR(255);
这将向表中添加另一个名为“columName2”的列。我们最终可以将两个值都添加为表格的一行:
mysql_query('INSERT INTO `tableName` (columnName, columName2)
VALUES ("' . $form_input . '", "' . $form_input2 . '");
就是这样; - )