【问题标题】:php mysql form while statement populating drop down with selectedphp mysql表单while语句填充下拉选择
【发布时间】:2015-03-04 01:01:24
【问题描述】:

我在填充数据的下拉选择中遇到了一点问题。我正在使用来自 2 个表的数据填充一个表单,这些数据使用不同的查询和一个嵌套的 while 语句。第一个给出联系信息的输出,第二个只是填充状态字段。它们都工作正常,但我正在尝试使用三元运算符将选定的选项更改为数据库中的正确选项,我认为我没有选择正确的数据。如果我尝试在 2 个表上进行连接,它要么仅输出联系人中存在的状态,要么输出所有状态以及联系人中任何记录的双精度值。我觉得我在这里很近。这是php;

        $dialogValue = $_POST['dataOpen'];
        $sql = "SELECT * FROM contacts prc
        JOIN states as st
        ON (prc.stateId = st.idStates)
        WHERE (idContacts ='" . $selectionValue ."')";
        $statesSQL = "SELECT * FROM states";
        $prcresult = $conn->query($sql);
        $statesResult = $conn->query($statesSQL);
        if ($prcresult->num_rows > 0) {
            // output data of each row
            while($prcrow = $prcresult->fetch_assoc()) {
                echo
                    "<form>"
                        ."<fieldset>"
                            ."<label for='name'>Name</label>"
                            ."<input type='text' name='firstName' value='" . $prcrow["firstName"] ."'>"
                            ."<input type='text' name='lastName' value='" . $prcrow["lastName"] ."'>"
                            ."<input type='text' name='address1' value='" . $prcrow["address1"] ."'>"
                            ."<input type='text' name='address2' value='" . $prcrow["address2"] ."'>"
                            ."<input type='text' name='city' value='" . $prcrow["city"] ."'>";
                    if ($statesResult->num_rows > 0) {
                        echo "<select>";
                        // output data of each row
                        while($strow = $statesResult->fetch_assoc()) {
                            //echo '<option value="'.$value.'" '.(($value=='United States')?'selected="selected"':"").'>'.$value.'</option>';
                            echo "<option value='" .$strow["idStates"] ."'" .(($strow["idState"]==$prcrow["statesId"])?'selected="selected"':"").">" .$strow["state"] ."</option>";
                            }
                    }                                   
            }
        } else {
            echo "0 results";
        }
        /*if ($statesResult->num_rows > 0) {
            // output data of each row
            while($row = $statesResult->fetch_assoc()) {
                echo

                "<option value='" .$row["idStates"] ."'>" .$row["state"] ."</option>";
            }
        }else{
        echo "o results";
        }*/
        echo
            "</select></fieldset>
                </form>";
        $conn->close();
        ?>

我正在使用的表具有这种结构;

这是联系人

        idContacts  
        firstName    
        lastName       
        address1       
        address2    
        city     
        stateId     
        zip    
        phone1      
        phone2     
        email 

这是状态;

        idStates
        state

它们在第一个查询 $sql 上的 contacts.stateId = states.idStates 处加入,不确定我是否需要第二个查询...

非常感谢您对此的任何帮助!

【问题讨论】:

    标签: php html mysql


    【解决方案1】:

    我找到了答案。前面的查询必须首先在三元运算符中使用。像这样;

        while($strow = $statesResult->fetch_assoc()) {
                    //echo '<option value="'.$value.'" '.(($value=='United States')?'selected="selected"':"").'>'.$value.'</option>';
                    echo "<option value='" .$strow["idStates"] ."'" .(($prcrow["statesId"]===$strow["idState"])?'selected="selected"':"").">" .$strow["state"] ."</option>";
                    }
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-24
      • 2017-04-06
      • 2012-02-23
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多