Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过下拉列表选择MySQL表_Php_Mysql - Fatal编程技术网

Php 如何通过下拉列表选择MySQL表

Php 如何通过下拉列表选择MySQL表,php,mysql,Php,Mysql,比如我有 我的数据库中有两个表,第一个是列表1,第二个是列表2 <select> <option name='select' value="0">Select</option> <option value="list1">List1</option> <option value="List2">List2</option> </select> 这是完整的代码 <?php } /

比如我有 我的数据库中有两个表,第一个是列表1,第二个是列表2

<select>
<option name='select' value="0">Select</option>
<option value="list1">List1</option>
<option value="List2">List2</option>
</select>
这是完整的代码

 <?php 
 }

    //connect to database

     mysql_connect('localhost','root','');
     mysql_select_db('pdsd');



 // check if the form has been submitted. If it has, start to process the form and save it to the database
 if (isset($_POST['submit']))
 { 
 // get form data, making sure it is valid

 $title = mysql_real_escape_string(htmlspecialchars($_POST['title']));
 $subject = mysql_real_escape_string(htmlspecialchars($_POST['subject']));



 // check to make sure both fields are entered
 if ($title == '' || $subject == '')
 {
 // generate error message
 $error = 'ERROR: Please fill in all required fields!';

 // if either field is blank, display the form again
 renderForm($title, $subject,$date, $error);
 }
 else
 {



 // save the data to the database



$tables = array('list1', 'list2');
if (in_array($_POST['select'], $tables)) {
   mysql_query("INSERT {$_POST['select']}  SET title='$title',subject='$subject'");

}


or die(mysql_error()); 

 echo "<center>Succesfully add</center>";
 echo "<script>setTimeout(\"location.href = 'login.php';\",1500);</script>";
 // once saved, redirect back to the view page

 }
 }
 else
 // if the form hasn't been submitted, display the form
 {
 renderForm('','','','','','','','','','','','','','','','','','','','');
 }




?>

如我在注释中所述,使用一个条件语句和两个基于条件语句的独立查询,以及选择值等于所选值的内容

例如,假设您使用纯PHP并使用表单:

旁注:您需要在这里使用自己的查询,如注释的
//查询列表X
中所示

另一个旁注:
name
属性属于
,而不是

最后一句话:我省略的
action=”“
等于“self”。因此,如果希望使用单独的文件,可以向其中添加
action=“handler.php”

<form method="post">

    <select name="select">
    <option value="0">Select</option>
    <option value="list1">List1</option>
    <option value="list2">List2</option>
    </select>

<input type = "submit" name = "submit" value = "Submit">

</form>

<?php 

if(isset($_POST['submit'])){

if(isset($_POST['select']) && $_POST['select'] == 'list1'){

   // query for LIST 1

}

if(isset($_POST['select']) && $_POST['select'] == 'list2'){

   // query for LIST 2

}

if(isset($_POST['select']) && $_POST['select'] == '0'){

   // Do nothing

}

}

正如我在注释中所述,使用一个条件语句和两个基于条件语句的独立查询,以及选择值等于所选值的内容

例如,假设您使用纯PHP并使用表单:

旁注:您需要在这里使用自己的查询,如注释的
//查询列表X
中所示

另一个旁注:
name
属性属于
,而不是

最后一句话:我省略的
action=”“
等于“self”。因此,如果希望使用单独的文件,可以向其中添加
action=“handler.php”

<form method="post">

    <select name="select">
    <option value="0">Select</option>
    <option value="list1">List1</option>
    <option value="list2">List2</option>
    </select>

<input type = "submit" name = "submit" value = "Submit">

</form>

<?php 

if(isset($_POST['submit'])){

if(isset($_POST['select']) && $_POST['select'] == 'list1'){

   // query for LIST 1

}

if(isset($_POST['select']) && $_POST['select'] == 'list2'){

   // query for LIST 2

}

if(isset($_POST['select']) && $_POST['select'] == '0'){

   // Do nothing

}

}

您应该首先验证输入是否有效,然后将其替换为SQL

$tables = array('list1', 'list2');
if (in_array($_POST['select'], $tables)) {
    mysql_query("INSERT INTO {$_POST['select']} SET title='$titile', subject='$subject'") or die(mysql_error());
}

确保正确转义变量
$titile
$subject
(如果它们来自用户输入),以防止SQL注入(使用
mysql\u real\u escape\u string()
)。如果您使用MySQLI或PDO,那么就更好了,这样您就可以使用准备好的语句而不是将变量替换到查询中。

您应该首先验证输入是否有效,然后才可以将其替换到SQL中

$tables = array('list1', 'list2');
if (in_array($_POST['select'], $tables)) {
    mysql_query("INSERT INTO {$_POST['select']} SET title='$titile', subject='$subject'") or die(mysql_error());
}


确保正确转义变量
$titile
$subject
(如果它们来自用户输入),以防止SQL注入(使用
mysql\u real\u escape\u string()
)。如果您使用MySQLI或PDO,则更好,这样您就可以使用一个准备好的语句,而不是将变量替换到查询中。

simple,使用一个条件语句和两个基于条件语句的单独查询。Name应该转到select not option请。已在PHP7中删除。了解使用PDO的语句,并考虑使用PDO,也有SQL错误插入XXX集YYY=BBB…此外,您可以只在查询中包含变量(如果两个表具有相同的结构),例如“插入$table…”,其中table将是select HTML标记的名称。简单地说,使用一个条件语句和两个基于条件语句的单独查询。名称应转到select not OPTIONQUESE。已在PHP7中删除。了解使用PDO的语句,并考虑使用PDO,也有SQL错误插入XXX集YYY=BBB…此外,您可以只在查询中包含变量(如果两个表具有相同的结构),例如“插入$table…”,其中table将是select HTML标记的名称。使用语句将不会太混乱。@tadman我同意这是我之前想到的,但我不记得如何使用内存执行这些操作。我凭记忆把这些都打了出来;-)很高兴知道你还拥有它@tadman嘿嘿,有时候我会想lol,但通常一个双倍的浓缩咖啡镜头会把我踢回挡位。@tadman所以我认为(浓缩咖啡)镜头越强,代码的马力就越大;-)我同意这是我之前的想法,但我不记得如何用记忆来做这些。我凭记忆把这些都打了出来;-)很高兴知道你还拥有它@tadman嘿嘿,有时候我会想lol,但通常一个双倍的浓缩咖啡镜头会把我踢回挡位。@tadman所以我认为(浓缩咖啡)镜头越强,代码的马力就越大;-)@tadman对照列表检查后,我没有发现问题。@tadman我说的是
$\u POST['select']
。其余的不在问题的范围之内。它说
$title
是从哪里来的
$\u POST
数据?你怎么知道他在分配给
$title
$subject
时没有使用
mysql\u real\u escape\u string
?这些代码都不是问题。我只是演示了如何使用变量表名,我不打算在这里调试他的代码中的所有问题。我在这里的具体抱怨是,将
$\u POST
数据直接放在查询中意味着存在单点故障。如果白名单代码生成新变量,则意外禁用白名单代码会使查询以安全的方式自动失败。它不会突然将其武器化
“插入$table\u name…”
是一种更安全的方法,因为
$table\u name
来自查找数组、
开关或其他东西。@tadman对照列表检查后,我没有发现问题。@tadman我说的是
$\u POST['select']
。其余的不在问题的范围之内。它说
$title
是从哪里来的
$\u POST
数据?你怎么知道他在分配给
$title
$subject
时没有使用
mysql\u real\u escape\u string
?这些代码都不是问题。我只是演示了如何使用变量表名,我不打算在这里调试他的代码中的所有问题。我在这里的具体抱怨是,将
$\u POST
数据直接放在查询中意味着存在单点故障。如果白名单代码生成新变量,则意外禁用白名单代码会使查询以安全的方式自动失败。它不会突然将其武器化<代码>“插入$table\n