php mysql表单while语句填充下拉列表
我对数据填充下拉选择有点问题。我正在用来自两个表的数据填充一个表单,使用to不同的查询和一个嵌套的while语句。第一个给出联系信息的输出,第二个只是填充state字段。它们都工作得很好,但我试图使用三元运算符从数据库中将所选选项更改为正确的选项,我认为我没有选择正确的数据。如果我尝试在这两个表上进行连接,它要么只输出contacts中存在的状态,要么输出contacts中所有状态加上所有记录的双精度。我觉得我离这里很近。这里是phpphp mysql表单while语句填充下拉列表,php,html,mysql,Php,Html,Mysql,我对数据填充下拉选择有点问题。我正在用来自两个表的数据填充一个表单,使用to不同的查询和一个嵌套的while语句。第一个给出联系信息的输出,第二个只是填充state字段。它们都工作得很好,但我试图使用三元运算符从数据库中将所选选项更改为正确的选项,我认为我没有选择正确的数据。如果我尝试在这两个表上进行连接,它要么只输出contacts中存在的状态,要么输出contacts中所有状态加上所有记录的双精度。我觉得我离这里很近。这里是php $dialogValue = $_POST[
$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();
?>
这就是美国
idStates
state
它们在第一个查询中的contacts.stateId=states.idStates处联接$sql不确定是否需要第二个查询
非常感谢您在这方面的任何帮助 我找到了答案。前面的查询必须首先在三元运算符中使用。像这样,
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>";
}
}
while($strow=$statesResult->fetch\u assoc()){
//回显“.$value.”;
echo“$strow[“state”]”;
}
}
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>";
}
}