如何使用PHP在表单下拉列表中显示来自MySQL的数据?

时间:2017-03-16 10:47:36

标签: php mysql

我不明白代码的这一部分应该在哪里说明,以便我可以显示来自MySql的数据?

如果他们需要站在这里?如何在下拉列表中的add.html页面中显示结果?

我是php的新手。谢谢。

This is add.php

    <html>
<head>
    <title>Add Data</title>
</head>

<body>
<?php
//including the database connection file
include_once("config.php");

if(isset($_POST['Submit'])) {    
    $firstname = $_POST['firstname'];
    $lastname = $_POST['lastname'];
    $occupation = $_POST['occupation'];

    // checking empty fields
   if(empty($firstname) || empty($lastname) || empty($occupation)) {                
        if(empty($firstname)) {
            echo "<font color='red'>firstname field is empty.</font><br/>";
        }

        if(empty($lastname)) {
            echo "<font color='red'>lastname field is empty.</font><br/>";
        }

        if(empty($occupation)) {
            echo "<font color='red'>Occupation field is empty.</font><br/>";
        }





      //THIS PART OF THE CODE
     if(empty($company_name)) {

      $sql = "SELECT company_name FROM former_company";
      $result = mysql_query($sql);

      echo "<select name='company_name'>";
      while ($row = mysql_fetch_array($result)) {
      echo "<option value='" . $row['company_name '] . "'>" . $row['company_name'] . "</option>";
      }

      echo "</select>";}



    //link to the previous page
    echo "<br/><a href='javascript:self.history.back();'>Go Back</a>";
} else  { 
    // if all the fields are filled (not empty)             
    //insert data to database
    $result = mysqli_query($mysqli, "INSERT INTO Staff(firstname,lastname,occupation) VALUES('$firstname','$lastname','$occupation')");
    //display success message
    echo "<font color='green'>Data added successfully.";
    echo "<br/><a href='index.php'>View Result</a>";
    }
}
?>
</body>
</html>



This is add.html

    <html>
<head>
    <title>Add Data</title>
</head>

<body>
    <a href="index.php">Home</a>
    <br/><br/>

    <form action="add.php" method="post" name="form1">
        <table width="25%" border="0">
            <tr> 
                <td>Firstname</td>
                <td><input type="text" name="firstname"></td>
            </tr>
            <tr>
                <td>Lastname</td>
                <td><input type="text" name="lastname"></td>
            </tr>
            <tr>
            <td>Occupation</td>
            <td><input type="text" name="occupation"></td>
        </tr>
        <tr>
        <tr>
            <td>Company name</td>
            <td><p><br>
            <select name="company_name" id="$sql">

            <option value="id" selected> </option>
            <option value="Option 2">Option 2</option>
            <option value="Option 3">Option 3</option>
            <option value="Option 4">Option 4</option>
            </select>
</p></td>
        </tr>
            <td></td>


                <td><input type="submit" name="Submit" value="Add"></td>
            </tr>
        </table>
    </form>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

在标记为add.html

的部分上删除此代码
       <select name="company_name" id="$sql">

        <option value="id" selected> </option>
        <option value="Option 2">Option 2</option>
        <option value="Option 3">Option 3</option>
        <option value="Option 4">Option 4</option>
        </select>

并将此代码放在add.php区域中。你应该从add.php的区域删除它,因为它不应该在那里。

      $sql = "SELECT company_name FROM former_company";
      $result = mysql_query($sql);

      echo "<select name='company_name'>";
      while ($row = mysql_fetch_array($result)) {
      echo "<option value='" . $row['company_name '] . "'>" . $row['company_name'] . "</option>";
      }

      echo "</select>";

您应该只有一个add.php文件,其中包含您粘贴的所有内容以及此修改。

答案 1 :(得分:1)

测试此(作为单文件解决方案):

<html>
<head><title>Add Data</title></head>
<body>
<a href="index.php">Home</a>
<br><br>
<?php
include_once("config.php");

if(isset($_POST['Submit'])) {
    $firstname = $_POST['firstname'];
    $lastname = $_POST['lastname'];
    $occupation = $_POST['occupation'];

   if(empty($firstname) || empty($lastname) || empty($occupation) || empty($company_name)) {                
        if(empty($firstname)) echo "<font color='red'>firstname field is empty.</font><br>";
        if(empty($lastname)) echo "<font color='red'>lastname field is empty.</font><br>";
        if(empty($occupation)) echo "<font color='red'>Occupation field is empty.</font><br>";
        if(empty($company_name)) echo "<font color='red'>Choose company.</font><br>";
    } else  { 
        $result = mysqli_query($mysqli, "INSERT INTO Staff(firstname,lastname,occupation) VALUES('$firstname','$lastname','$occupation')");
        echo "<font color='green'>Data added successfully.";
        echo "<br><a href='index.php'>View Result</a>";
    }
} else {
    ?>
    <form action="" method="post" name="form1">
      <table width="25%" border="0">
        <tr><td>Firstname</td><td><input type="text" name="firstname"></td></tr>
        <tr><td>Lastname</td><td><input type="text" name="lastname"></td></tr>
        <tr><td>Occupation</td><td><input type="text" name="occupation"></td></tr>
        <tr>
          <td>Company name</td>
          <td>
            <?php
            $sql = "SELECT company_name FROM former_company";
            $result = mysqli_query($mysqli, $sql);
            echo "<select name='company_name'>";
            echo "<option value='X' selected disabled> </option>";
            while ($row = mysqli_fetch_array($result)) {
                echo "<option value='" . $row['company_name '] . "'>" . $row['company_name'] . "</option>";
            }
            echo "</select>";
            ?>
          </td>
        </tr>
        <tr><td colspan="2"><input type="submit" name="Submit" value="Add"></td></tr>
      </table>
    </form>
    <?php
}
?>
</body>
</html>

答案 2 :(得分:0)

尝试使用此而不是While循环。

for($j=0; $j<count($row['company_name']); $j++){

echo "<option value='" . $row['company_name '][$j] . "'>" . $row['company_name'][$j] . "</option>";

}

替换为您自己的变量。例如,在上面的代码中使用了$row