我有多个html选择,并选择了当前的mysqli值。目前我有两个查询来完成此任务。有没有办法将两个查询合并为一个?我的应用程序中有太多的mysqli查询,并且我正试图找到限制和组合它们的方法。
<?php
echo '<select name="companyedit"><option value="">None</option>';
$currcoQuery = mysqli_query($link, "SELECT id FROM Company WHERE id = $company");
$currco = mysqli_fetch_assoc($currcoQuery);
$allcoQuery = mysqli_query($link, "SELECT id, name FROM Company ORDER BY name");
while($allco = mysqli_fetch_assoc($allcoQuery)){
echo '<option value="'.$allco['id'].'"';
if($currco['id'] == $allco['id']) echo 'selected';
echo '>'.$allco['name'].'</option>';
}
mysqli_data_seek($allcoQuery, 0);
echo '</select>';
?>
另一个例子是:
<?php
echo '<select name="marked"><option value="">None</option>';
$curmaterialQuery = mysqli_query($link, "SELECT marked FROM Materials WHERE id = ".$materialed);
$curmaterial = mysqli_fetch_assoc($curmaterialQuery);
$allmaterialQuery = mysqli_query($link, "SELECT id, name FROM Marked WHERE `assoc` = 'mat'");
while($allmaterial = mysqli_fetch_assoc($allmaterialQuery)){
echo '<option value="'.$allmaterial['id'].'"';
if($curmaterial['id'] == $allmaterial['id']) echo 'selected';
echo '>'.$allmaterial['name'].'</option>';
}
mysqli_data_seek($allmaterialQuery, 0);
echo '</select>';
?>
答案 0 :(得分:1)
对于您的第一个示例,您可以获得所有公司一个查询但在选择一个查询之前。这是&#34;双重麻烦&#34;。试试这个:
<?php
echo '<select name="companyedit"><option value="">None</option>';
$allcoQuery = mysqli_query($link, "SELECT id, name FROM Company ORDER BY name");
while($allco = mysqli_fetch_assoc($allcoQuery)){
echo '<option value="'.$allco['id'].'"';
if($company == $allco['id']) echo 'selected';
echo '>'.$allco['name'].'</option>';
}
mysqli_data_seek($allcoQuery, 0);
echo '</select>';
?>
对于您的第二个示例,我需要更多上下文来提供更好的解决方案。在不知道表结构的情况下很难优化查询。