【问题标题】:How to use select tag in html to choose specific sqlite3 queries with php?如何在 html 中使用 select 标签来选择特定的 sqlite3 查询与 php?
【发布时间】:2021-08-18 14:28:00
【问题描述】:

我尝试过的是使用 if 语句和 switch 语句,但它仍然无法正常工作,因为它进入了默认值:“出现问题”,我已经编写了代码,但我不确定出了什么问题

<form action="index.php" method="post" id="formSelect">
        
            <div id="chosen">
            
            <label for="pkCountry" class="blue">Choose a country:</label>
            
            <select name="chooseCountry" id="choose">
                
                <option value="start">select...</option>
                <option value="Australia">Australia</option>
                 <option value="India">India</option>
                 <option value="Pakistan">Pakistan</option>
                 <option value="England">England</option>
                 <option value="South Africa">South Africa</option>
                 <option value="Sri Lanka">Sri Lanka</option>
                 <option value="Bangladesh">Bangladesh</option>
                 <option value="West Indies">West Indies</option>
            
            </select>
                
                <?php
                 $db = new SQLite3('cricket.db');

                        if (!$db) {
                             echo $db->lastErrorMsg();
                           } 
                       else {
                            switch (isset($_POST['formCountry'])){
                              case 'India':
                              $command = $db->query("SELECT * FROM batsman WHERE country = 'India';");
                              
                              $db->exec($command);
                                  
                            break;
                              case 'Australia':
                               $command1 = $db->query("SELECT * FROM batsman WHERE country = 'Australia';");
                              
                              $db->exec($command1);
                                  
                            break;
                                  
                              case 'England':
                                  $command2 = $db->query("SELECT * FROM batsman WHERE country = 'England';");
                              
                              $db->exec($command2);
                                  
                            break;
                                  
                              case 'Pakistan':
                                  $command3 = $db->query("SELECT * FROM batsman WHERE country = 'Pakistan';");
                              
                                  $db->exec($command3);
                                  
                            break;
                                  
                              case 'Bangladesh':
                                  $command4 = $db->query("SELECT * FROM batsman WHERE country = 'Bangladesh';");
                              
                                 $db->exec($command4);
                            break;
                                  
                             case 'Sri Lanka' :
                                  $command5 = $db->query("SELECT * FROM batsman WHERE country = 'Sri Lanka';");
                              
                                  $db->exec($command5);
                                  
                           break;
                                  
                              case 'South Africa':
                                 $command6 = $db->query("SELECT * FROM batsman WHERE country = 'South Africa';");
                              
                                 $db->exec($command6);
                                  
                                break;
                                  
                              case 'West Indies':
                                  $command7 = $db->query("SELECT * FROM batsman WHERE country = 'West Indies';");
                              
                                  $db->exec($command7);
                                break;
                              default:
                                  echo "<br>something went wrong</br>";                                 
                                  $db->close();
                                 
                                  
                          }  
                             
                
                        
                        
                        }
                        
                ?>

【问题讨论】:

    标签: php html sqlite


    【解决方案1】:

    您在寻找$_POST['formCountry']时选择的名称是chooseCountry

    你应该更新你的开关到

    switch ($_POST['chooseCountry']){
    

    此外,isset 函数仅返回布尔值,truefalse。你不能在交换机中使用它。如果你想避免警告,你需要在 switch 之前添加一个 if

    if(isset($_POST['chooseCountry'])) {
        switch ($_POST['chooseCountry']){
            // CODE
        }
    }
    

    【讨论】:

    • 你认为必须使用 fetchArray() 函数从 sqlite 获取记录吗?
    • 当然,如果您需要从 SELECt 返回值,您需要 SQLite3。我认为那部分稍后在您的代码中。但在此之前,您是否修复了上述问题?
    • 是的,感谢您的更正,但它仍然无法正常工作,我认为代码的 SQLite3 部分必须有错误,因为查询无法正常工作。顺便说一句,我稍后在我的代码中确实有 fetchArray 函数,只是想知道它是否必须再次植入。
    猜你喜欢
    • 2020-08-02
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多