我有这个表单,以便人们可以将一些数据插入数据库。
<form action="publicar_action.php" method="POST">
<input type="text" name="concNome" placeholder="nome do concurso"> <br>
<select name="concInstrumento">
<option>guitarra</option>
<option>flauta</option>
</select>
<input type="date" name="concDataDE" ><br>
<input type="date" name="concDataATE" ><br>
<input type="text" name="concDescricao" placeholder="Descrição"><br><br>
<input type="submit">
</form>
我有这个数据库mr_concursos
,它有2个表:guitarra
和flauta
。
我想要做的是将数据插入相应的表中。该表将由用户在表单上选择的选项选择。
像这样:
<?php
$con = mysqli_connect('localhost', 'root', '', 'mr_concursos');
$concNome = $_POST['concNome'];
$concInstrumento = $_POST['concInstrumento'];
$concDataDE = $_POST['concDataDE'];
$concDataATE = $_POST['concDataATE'];
$concDescricao = $_POST['concDescricao'];
$sql = "INSERT INTO $concInstrumento (nome, instrumento, dataDE, dataATE, descricao) VALUES ('$concNome', '$concInstrumento', '$concDataDE', '$concDataATE', '$concDescricao')";
$result = mysqli_query($con,$sql);
header('Location: publicar.php');
两个表都有相同的列。
由于某种原因,它不起作用。
如果不是select / option标签,我只使用一个简单的文本字段,并写下表的名称,它只会被插入到表guitarra
中。它不适用于flauta
...
你知道为什么吗?
答案 0 :(得分:0)
您错过了form
和PHP conditions
的以下限制。
HTML:
PHP
isset()
条件丢失,因为如果页面已发布,我们必须使用此进行检查。因此,您的整个代码应如下所示。
<强> HTML:强>
<form action="publicar_action.php" method="POST">
<input type="text" name="concNome" placeholder="nome do concurso"> <br>
<select name="concInstrumento">
<option value="guitarra">guitarra</option>
<option value="flauta">flauta</option>
</select>
<input type="date" name="concDataDE"><br>
<input type="date" name="concDataATE"><br>
<input type="text" name="concDescricao" placeholder="Descrição"><br><br>
<input type="submit" name="save" value="Submit">
</form>
<强> publicar_action.php 强>
<?php
$con = mysqli_connect('localhost', 'root', '', 'mr_concursos');
if(isset($_POST['save'])){ // where save is the name of the input button
$concNome = $_POST['concNome'];
$concInstrumento = $_POST['concInstrumento'];
$concDataDE = $_POST['concDataDE'];
$concDataATE = $_POST['concDataATE'];
$concDescricao = $_POST['concDescricao'];
$sql = "INSERT INTO $concInstrumento (`nome`, `instrumento`, `dataDE`, `dataATE`, `descricao`) VALUES ('".$concNome."', '".$concInstrumento."', '".$concDataDE."', '".$concDataATE."', '".$concDescricao."')";
$result = mysqli_query($con,$sql);
header('Location: publicar.php');
}
?>
为了确保Insert Statement正确地工作到数据库,您可以按照要点进行操作。
注意:您首先将echo放入Insert语句,然后通过放置退出来中断执行;然后复制回显的语句并将其放在DB的SQL中,然后检查插入中是否发生错误。如果没有错误发生,请删除echo并删除退出;
希望解释清楚,如果将来发生错误,将有助于纠正错误。
快乐编码:)