显示从Combobox中选择的搜索选项的所有结果

时间:2014-12-20 02:31:27

标签: php mysql

我有mysql数据库,包含列id,division,district,branch,scm_name和scm_address。这里条件是喜欢 - 许多scm_names的一个分支名称...并且总共有207个分支,大约有1000个scm_names

我使用以下代码通过分支机构通过组合框选项进行搜索,点击搜索按钮后,用户将被重定向到results.php页面。在这里,我想显示所有选定分支名称的scm_names。

目前,它仅显示第一行的结果。如何显示该分支的所有scm_names?

使用的代码 -

的index.php

    $query="SELECT * FROM tablename  group by branch   order by branch ASC ";

    $result = mysql_query ($query) or die ('error submitting');
    $count=1;
     echo "<select name='district'>";
      while($drop=mysql_fetch_array($result)){


      echo "<option value=$drop[id]>$count) $drop[branch] Branch From - $drop[district] District</option>";

     $count++;}

     echo "</select>";

使用此代码,它正确填充数据库中所有1000行的207个分支列表。

results.php

 $district = $_POST['district'];

 $sql = "SELECT  division, district, branch, GROUP_CONCAT(scm_name SEPARATOR ', ') AS scm_name FROM tablename where id = '$district' GROUP BY branch";


$results1=mysql_query($sql);


while($row = mysql_fetch_assoc( $results1 )) {?>

Division :     $row["division"]
Division :     $row["district"]
Division :     $row["branch"]
Division :     $row["scm_name"]
Division :     $row["scm_address"]

 <?}?>

但它只显示一个 - 第一行作为结果。因此,一个scm_name被显示为结果。

如何在数据库中显示所有具有相同分支名称值的scm_names?

1 个答案:

答案 0 :(得分:2)

使用id列只会选择一行。您需要使用与分支中所有行匹配的列。

index.php中,使用:

echo "<option value='$drop[branch]'>$count) $drop[branch] Branch From - $drop[district] District</option>";

results.php中,测试该列:

$sql = "SELECT  division, district, branch, GROUP_CONCAT(scm_name SEPARATOR ', ') AS scm_name
        FROM tablename 
        where branch = '$district'";

由于您只是为单个branch返回行,因此此处不需要GROUP BY branch。您也不需要while循环来显示结果,因为这只会返回一行。