PHP - 下拉列表填充但不会使用 2 个表进行选择

标签 php mysql selected

我已经为此工作了至少一个月,并且在其他地方找不到这个问题。我知道我只是错过了一些愚蠢的东西,但是......

有 2 个表:biz 和 bizclass。 bizclass.bizclassName 包含 250 多个分类来填充下拉框。从 bizclass 表填充和更新到 biz 表都有效,但是当我尝试从 biz.bizClass1 选择当前数据时,下拉列表初始值设置为空值“Select Class”。请帮忙。这让我发疯。我已经老了,不能再经历更多不眠之夜了!新手 - 对 php 和 javascript 有点熟悉,但还没有掌握 ajax。

echo "Class1: <select name ='bizClass1' id='bizClass1'/> ";

$sql = 'SELECT bizclassName FROM bizclass ORDER BY bizclassName';
$query2 = 'SELECT `bizClass1` FROM `biz` WHERE `bizID` = "'. $search .'"'; 
$clist = mysqli_query($connection,$sql); 
$num=mysqli_num_rows($clist);
$olist = mysqli_query($connection, $query2); // select  bizClass from biz 

$bizTblRecord = mysqli_fetch_assoc($clist); // option values from bizclass table to populate the dropdown
$row2 = mysqli_fetch_assoc($olist); // fetched the bizClass from biz

if ($row2['bizClass1'] == $bizTblRecord['bizclassName']){
    printf ("<option value='%s' selected >%s</option> ", $row2['bizClass1'], $row2['bizClass1']);
} else {
    printf ("<option value=''>Select Class</option> ");
}//end if


for($numrows=1; $numrows<= $num; $numrows++)
{
    // Associative array
    $row=mysqli_fetch_assoc($clist);

    printf ("<option value='%s'>%s</option>",$row['bizclassName'],$row['bizclassName']);

} //end for

echo "</select>";

// Free result set
mysqli_free_result($clist); 
mysqli_free_result($olist);

最佳答案

    echo "Class1: <select name ='bizClass1' id='bizClass1'/>
                         <option value=''>Select Class</option> ";

    $sql = 'SELECT bizclassName FROM bizclass ORDER BY bizclassName';
    $clist = mysqli_query($connection,$sql); 
    $num=mysqli_num_rows($clist);



    $querySEARCH = 'SELECT `bizClass1` FROM `biz` WHERE `bizID` = "'. $search .'"'; 
    $SEARCHlist = mysqli_query($connection, $querySEARCH); // select  bizClass from biz 
    $rowSEARCH= mysqli_fetch_assoc($SEARCHlist); // fetched the bizClass from biz

    for($numrows=1; $numrows<= $num; $numrows++)
    {
        // Associative array
        $row=mysqli_fetch_assoc($clist);

        if ($rowSEARCH['bizClass1'] == $row['bizclassName']){
            printf ("<option value='%s' selected >%s</option> ", $rowSEARCH['bizClass1'], $rowSEARCH['bizClass1']);
        } else {
            printf ("<option value='%s'>%s</option>",$row['bizclassName'],$row['bizclassName']);
        }//end if

    } //end for

    echo "</select>";

    // Free result set
    mysqli_free_result($clist); 
    mysqli_free_result($SEARCHlist);

If 语句必须位于循环内才能将每个选项与搜索进行比较。

测试表:

业务

bizID   bizClass1
1       ronaldo
2       shevshenko
3       falcao
4       zidane
5       valderrama

商业类

bizclassName
falcao
ozil
ronaldo
messi
shevshenko
valderrama
hazard
totti

关于PHP - 下拉列表填充但不会使用 2 个表进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22305897/

相关文章:

ios - Swift iOS 如何选择数据到表中

php - 为什么 `method_exists($scope, ' 用 Laravel Builder 的 Global Scope 扩展 )` exists in method `

php - 与 PHP 和 MySQL 建立一对多关系的分页

php - 从 'messages' 表中选择数据,没有错误,但不起作用。 MYSQL、PHP

python - MariaDB/MySQL 在 Python 中插入/重复键更新

ios - UITableViewCell 3 选择的时间更改多个选择的背景颜色

php - Symfony2 + Facebook-SDK 4.0 - 如何集成?

php - 将动态表单发布到数据库

php - 如何从 mysql 中选择最近 7 天的结果(带有自定义数据字段)?

MySQL 更新正在将其他行中的选定列设置为零