与PHP和mysql数据库相关的下拉列表

时间:2013-05-12 06:38:16

标签: php drop-down-menu

我是PHP新手。我有一个像dropbox文件中附带的数据库。它有4列

  1. 分部名称
  2. 地区名称
  3. Thana姓名
  4. 联盟名称
  5. 这些是我们国家的行政单位。我想创建四个下拉列表/组合框,它们将从数据库中填充。有一点必须相互关联。如果有人选择了部门名称,它将仅显示属于该部门的地区名称。同样,如果所选区域只会在第3个下拉列表中显示Thana名称。同样,第四次下拉列表将被填满。

    数据库架构:

    https://dl.dropboxusercontent.com/u/81313785/database_schema.xls

    以下是我使用的代码:

      <?php
    $con = pg_connect("data connection");
    if (!$con)
      {
      die("Could not connect: " . pg_last_error());
      }
    
      $locfindsql = "SELECT unionname, thananame, distname, divname from union_bgd";
    
    //echo $sql;
    $result = pg_query($con, $locfindsql);
    
    $row = array();
    ?>
    <div id="leftpanel" style="position: absolute; top: 12%; left: 1%; bottom: 2%; width: 20%; height: 86%; box-shadow: 4px 4px 4px #888888;
             background: #5e5e5c; z-index:-888;">
    
        <div id="findPlace" style= "position: absolute; left: 8px; top: 8px; right: 8px; height: 275px; background: rgb(245, 246, 246); border-radius: 4px;" >
            <h4>Find a location</h4>
            Division:</br>
            <select name="Division">
                <?
                while($row = pg_fetch_array($result))
                  {
                  echo "<option>$row[divname]</option>";
                  }
                ?>
            </select></br>
            District:</br>
            <select name="District">
                <?
                while($row = pg_fetch_array($result))
                  {
                  echo "<option>$row[distname]</option>";
                  }
                ?>
            </select></br>
            Upazila:</br>
            <select name="Union">
                <?
                while($row = pg_fetch_array($result))
                  {
                  echo "<option>$row[thananame]</option>";
                  }
                ?>
            </select></br>
            Union:</br>
            <select name="Union">
                <?
                while($row = pg_fetch_array($result))
                  {
                  echo "<option>$row[unionname]</option>";
                  }
                ?>
            </select></br>
                <?
                pg_close($con);
                ?>
    
            <button id="placebutton" style="font-size: small; font-family: Arial;"><a href="javascript:onPlaceBtnClick('findPlaceButton')">Find the Place</a></button>
        </div>
    
        </div>
    

2 个答案:

答案 0 :(得分:2)

我不确定这是否是你所谈论的那种,但我希望它会对你有所帮助。这是代码从数据库填充下拉列表。这不是生产代码,但它显示了将数据库结果提供给表单的一种方法。如果您对PHP完全不熟悉并希望快速学习基础知识,可以试试w3schools.com并查看它是否对您有所帮助。在php.net上还有文档,您可以深入了解PHP的深度。

    // GET LIST AND DISPLAY IN FORM
    $link = mysqli_connect($db_connection, $db_user, $db_passwd, $db_name);
    // check connection
    if (mysqli_connect_errno()) 
    {
      printf("Connect failed: %s\n", mysqli_connect_error());
      exit();
    }
    // else echo "<p>Connected to database.</p>";
    // Get value for new student id 
    $query = "SELECT custid, firstname, lastname FROM customer ORDER BY lastname, firstname ASC";
    if($result = mysqli_query($link, $query)) 
    {
        echo '<p><form action="./index.php" method="post">';
        //
        //SELECT THE CUSTOMER MAKING THE PAYMENT
        echo'<select name="loadcustomer">';
        echo'<option value="" selected="selected" disabled="disabled">Select a Customer</option>';
        while ($idresult = mysqli_fetch_row($result))
        {
            $custid = $idresult[0];
            $firstname = $idresult[1];
            $lastname = $idresult[2];

            echo'<option value="' . $custid . '">' . $firstname . '&nbsp;' . $lastname . '</option>';
        }
        echo'</select></p><p>';
        //
        // SELECT THE NUMBER OF HOURS TO BE PAID
        echo'<select name="numberofhours">';
        echo'<option value="" selected="selected" disabled="disabled">Select # of Hours</option>';
        echo'<option value="1">1</option>';
        echo'<option value="2">2</option>';
        echo'<option value="3">3</option>';
        echo'<option value="4">4</option>';
        echo'<option value="5">5</option>';
        echo'<option value="6">6</option>';
        echo'<option value="7">7</option>';
        echo'<option value="8">8</option>';
        echo'</select></p><p>';
        echo'<input type="submit" value="Load Customer" />';
        echo'</form></p>';  
    }
    mysqli_free_result($result);
    // close connection 
    mysqli_close($link);

答案 1 :(得分:1)

如果我理解正确,以下代码将正常工作,只需正确设置mysql

        <?php
    $con=mysqli_connect("your host","mysql_user","user_password","your_db");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }

    $result = mysqli_query($con,"SELECT destrict, thana FROM your table");
    ?>
    <select>
    <?
    while($row = mysqli_fetch_array($result))
      {
      echo "<option>$row[destrict]</option>";

      }
    ?>
    </select>
    <?
    mysqli_close($con);
    ?>