我有几个select语句看起来像这样。我需要将php变量传递到我的数据库中。
<select name="gamestart" >
<?php for($gamestart=1; $gamestart<=24; $gamestart++)
echo "<option value='$gamestart'>$gamestart:00</option>";
?>
</select>
这是我的插入语句到我的数据库中与其他类似的变量,我有同样的问题。
<?php
$mysql_query = "INSERT INTO soccer_games (gamestart, gameend)
VALUES ('$gamestart', '$gameend')";
$this->db->query($mysql_query);
?>
截至目前,值已被放入数据库,但INSERT进入数据库的值是数字25(在我的循环中甚至不是一个选项,你可以看到),无论我在数据库中选择了什么值形成。
编辑1: 问题可能是我没有使用过一个表格(我的无限智慧中的我没有意识到我需要一个表格)。
我假设我需要这种性质的东西......
public function insertstatements(){
<?php
$mysql_query = "INSERT INTO soccer_games (gamestart, gameend)
VALUES ('$gamestart', '$gameend')";
$this->db->query($mysql_query);
?>
}
<form method="post" action="<?php insertstatements(); ?>">
<select name="gamestart" >
<?php for($gamestart=1; $gamestart<=24; $gamestart++)
echo "<option value='$gamestart'>$gamestart:00</option>";
?>
</select>
</form>
答案 0 :(得分:7)
您可以使用 gamestart
或 $_POST['gamestart']
访问表单发送的$_GET['gamestart']
,具体取决于{{1}在表单中设置(如果没有method
属性,则为GET)。
在我认为for循环在数据库插入逻辑之前之前,method
设置为$gamestart
,因此其值将设置为25
。
在将变量放入查询之前,请确保对变量使用25
,否则您很容易遭受一些 SQL注入攻击。 绝不相信用户输入!
所以一个正确的例子是(我不知道你从哪里得到mysql_real_escape_string
,但是如果它也来自表格,那么就这样做了):
$gameend
编辑:如果您$gamestart=mysql_real_escape_string($_POST['gamestart']);
$mysql_query = "INSERT INTO soccer_games (gamestart, gameend)
VALUES ('$gamestart', '$gameend')";
已启用,则可以将{GET和POST变量简单地视为$gamestart
。但你应该关闭它,而不是写任何依赖它的代码。对于这些为什么,请在Google上搜索。
答案 1 :(得分:2)
您的form
标记应如下所示:<form action="thepage.php" method="post">
您需要将文件的URL放在action
属性中(如果您愿意,可以使用表单所在的同一页面)。提交表单后,数据将通过HTTP POST发送到该页面(在这种情况下,如果您指定method="get"
,则可能是GET。)
在您发送数据的页面上,您可以使用$_POST["fieldName"]
从表单中检索数据。
您可以这样做(假设gameend
是表单中另一个字段的名称):
$gamestart = mysql_real_escape_string($_POST["gamestart"]);
$gameend = mysql_real_escape_string($_POST["gameend"]);
$mysql_query = "INSERT INTO soccer_games(gamestart, gameend) VALUES('$gamestart', '$gameend')";
答案 2 :(得分:0)
您的表单标记无法按您的方式运行。
<form method="post" action="<?php insertstatements(); ?>">
这样做是运行insertstatements
然后回显任何东西,从而制作一个表格标签,如:
<form method="post" action="">
空白操作会使脚本POST
成为自己。如果这是您想要的,那么请将其保留,或者您可以通过将操作设置到该页面来将其发布到某个页面。
<form method="post" action="submit.php">
要从表单使用$_POST
中读取变量,例如:$_POST['gamestart']
。