dtjo87679 2015-05-04 12:14
浏览 31
已采纳

SQL请求取决于下拉菜单

I'm having a small problem that's been annoying me for some hours now about a dropdown. So, I have a dropdown which is filled thanks to a SQL request and now I want to get the selected answer to do another SQL request but I'm having troubles with that ... Here is my code.

<?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'];
    }
    ?>

When I test my request, I get

AxioObserverlàbool(false) proutboolean

which means that my request is not working ...

Any ideas ? Thanks !

  • 写回答

1条回答 默认 最新

  • douxian6260 2015-05-04 12:17
    关注

    Your query isn't as you expect. You are using single quotes so the variable isn't being concatenated.

    $test = $bdd->query('Select * from ' . $nom . ' where ObjMagn="40x" and NumberBead = 2;');
    

    This also is still likely to fail.

    1. Why give the user the ability to choose the table?
    2. You also are open to SQL injections with this.
    3. If the value is empty your default value is empty, which will make the query fail.
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 易康econgnition精度验证
  • ¥15 线程问题判断多次进入
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致