将数据从MySQLli拉取到下拉列表PHP


pull the data from mysqli to dropdown list php

我一直在尝试从下拉菜单中的数据库mysqli中提取数据。这是我的postad代码.html。我想从类别表中提取行名为CatName的类别数据。我也有显示 ctegory id 的 CatId。提前谢谢你。请帮忙:

<html>
       <head>
           <title>Post AD</title>
    </head>
  <body>
      <form method="POST" action="postad.php">
     <table>
    <tr>
    <td>AdName:</td>
    <td><input type="text" name="adname"></td>
     </tr>
     <tr>
    <td>AdCategory</td>
         <td>
             //dropdown list
  <select name="Categories">
      <?php include = connect.php 
            $sql = "SELECT CatName FROM categories order by CatName";
            $result = $db->query($sql);
            while($row = $result->fetch_array()) {
        echo "<option value='". $row['CatName']."'>."</option>'; 
   }
    ?>
</select>
  </td>
     </tr>
     <tr>
    <td>Contact Number</td>
    <td><input type="text" name="contactnumber"></td>
     </tr>
     <tr>
    <td>Image</td>
    <td><input type="text" name="image"></td>
     </tr>
     <tr>
    <td>Description</td>
    <td><input type="text" name="description"></td>
     </tr>
        <tr>
    <td>Expiration Date</td>
    <td><input type="text" name="expirationdate"></td>
     </tr>
     <tr>
     <td id="btn"><input type="submit" value='submit' name="submit"></td>
    </tr>    
    </table>     
    </form>
      </body>
</html>

您的菜单代码似乎有误。应该是这个

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

反对

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

无论表的结果如何,结果都将是一个字符串,因此无需担心 value=''。真正的问题是你如何掩盖你的报价。

编辑:刚刚注意到include = connect.php应该include 'connect.php';

<?php
$mysql_host = '';
$mysql_user = '';
$mysql_pass = '';
$mysql_dbase = '';
$mysql_table = '';
$pdo = new PDO('mysql:host=' . $mysql_host . ';dbname=' . $mysql_dbase, $mysql_user, $mysql_pass);
$sth = $pdo->prepare('SELECT * FROM `' . $mysql_table . '` ORDER BY `id` CatName');
$sth->execute();
$result = $sth->fetchAll();
foreach ($result as $row) {?>
    <option value=<?php echo $row['CatName']; ?>></option>; 
<?}?>
echo "<option value='". $row['CatName']."'>."</option>'; 

包含错误,也没有用于选项的内部HTML

为简单起见,您可以使用这种方式。

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

好的。现在我创建了一个名为getcategories.php的新php文件。这个页面运行良好。这是它的代码:

            $sql = "SELECT CatName FROM categories order by CatName";
            $result = $db->query($sql);
            $options="";
//echo "<select value='categories'>";       
while($row = $result->fetch_assoc()) {
        $categoryname=$row["CatName"]; 
   // echo '<option value="'.$categoryname.'">'.$categoryname.'</option>'; 
   // echo "</select>";
   //echo "$categoryname'n";
       $options .= '<option value="'.$categoryname.'">'.$categoryname.'</option>';
}
?>          

我应该如何将选项的数据拉到html文件的下拉列表中