Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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 SQL请求取决于下拉菜单_Php_Html_Mysql - Fatal编程技术网

Php SQL请求取决于下拉菜单

Php SQL请求取决于下拉菜单,php,html,mysql,Php,Html,Mysql,我有一个小问题,这个问题已经困扰了我好几个小时了。 所以,我有一个下拉列表,这是由于一个SQL请求填写,现在我想得到选择的答案,做另一个SQL请求,但我有麻烦了。。。 这是我的密码 <?php try { $bdd = new PDO('mysql:host=localhost;dbname=PSF;charset=utf8','user','pass'); } catch (Exception $e) { die('

我有一个小问题,这个问题已经困扰了我好几个小时了。 所以,我有一个下拉列表,这是由于一个SQL请求填写,现在我想得到选择的答案,做另一个SQL请求,但我有麻烦了。。。 这是我的密码

<?php
    try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=PSF;charset=utf8','user','pass');
    }
    catch (Exception $e)
    {
        die('Erreur : ' . $e->getMessage());
    }

    echo 'poil';
    $choiceMicroscope = $bdd->query('select table_name from information_schema.tables where table_schema="PSF"');

?>
    <form method="POST" action="test3.php">
    <select name="Microscope">


    <?php

    while($choice = $choiceMicroscope->fetch())
    {
        ?>
        <option value="<?php echo $choice['table_name']; ?>"><?php echo $choice['table_name']; ?></option>
        <?php
    }
    ?>
    </select>
    <input type="Submit" value="Send" name="Send">
    </form>

    <?php

    if(isset($_POST['Microscope']) and isset($_POST['Send']))
        $nom=$_POST['Microscope'];
    else
        $nom="";

    //On vérifie si les champs sont vides
    if(empty($nom))
        echo '<font color = "red">The Microscope field should not be empty !</font>';
    else
    {
        echo $nom;
        echo "là";
        $test = $bdd->query('Select * from ".$nom." where ObjMagn="40x" and NumberBead = 2;');
        echo "prout";
        echo gettype($test);
        $test2 = $test->fetchAll();
        echo "ici";
        print_r($test2);
        echo $_POST['Microscope'];
    }
    ?>
这意味着我的请求无效


有什么想法吗?谢谢

您的查询不是您所期望的。您使用的是单引号,因此变量不会被串联

$test = $bdd->query('Select * from ' . $nom . ' where ObjMagn="40x" and NumberBead = 2;');
这也很可能失败

  • 为什么要让用户能够选择表格
  • 您还可以使用此工具进行SQL注入
  • 如果该值为空,则默认值为空,这将导致查询失败

  • 好的,这个请求有效!非常感谢你!我肯定我试过这个。。。1.实际上,这是根据选择建立图表。2.该数据库位于NAS上,因此只有与我一起工作的人才能使用它。3.是的,我知道,但我还在做那部分…啊,好吧,那我想我已经够好了。向公众发布时要小心。当您确定此答案已解决您的问题时,请将其标记为已接受答案。谢谢这个下拉列表是用来选择我需要从哪个表中选择行的。我还有其他东西要看,我的页面才能完整。表名实际上是多个显微镜名称(或我工作的地方使用的名称)。不用担心,它将保留在这里,不会公开。再次感谢!您知道根据此处的选择制作另一个下拉菜单的方法吗s
    $test = $bdd->query('Select * from ' . $nom . ' where ObjMagn="40x" and NumberBead = 2;');