Php 选择mysql数据库中的多列框

Php 选择mysql数据库中的多列框,php,mysql,drop-down-menu,Php,Mysql,Drop Down Menu,我有以下php代码,它非常适合显示1列,但我需要它显示10列的值 <select size="1" name="domeinnaam"> <?php include '../config.php'; $sql = "SELECT * FROM megabase"; $resultaat = mysql_query($sql) or die (mysql_error()); while ($

我有以下
php
代码,它非常适合显示1列,但我需要它显示10列的值

         <select size="1" name="domeinnaam"> 
      <?php 
      include '../config.php';
      $sql = "SELECT * FROM megabase";  
      $resultaat = mysql_query($sql) or die (mysql_error());  
      while ($row = mysql_fetch_array($resultaat))       
      { 
      echo '<option>' . $row['domeinnaam1'] . '</option>';
      }
      ?>
     </select>
      echo '<option>' . $row['domeinnaam1'] . $row['domeinnaam2'] . '</option>';
但这不起作用。因为结果将显示如下: 域1
域1
域1域2

      echo '<option>' . $row['domeinnaam1'] . $row['domeinnaam2'] . '</option>';
应该是这样

      echo '<option>' . $row['domeinnaam1'] . $row['domeinnaam2'] . '</option>';
域1
域1
域1
域2

      echo '<option>' . $row['domeinnaam1'] . $row['domeinnaam2'] . '</option>';

什么有效

假设您希望每个域名都作为选项显示在select中,并且数据库中的域名字段是domeinnaam1、domeinnaam2、domeinnaam3等,您将执行以下操作

      echo '<option>' . $row['domeinnaam1'] . $row['domeinnaam2'] . '</option>';
<?php 
        include '../config.php';
        $sql = "SELECT * FROM megabase";  
        $resultaat = mysql_query($sql) or die (mysql_error());  
        $domains = array();
        while ($row = mysql_fetch_array($resultaat))       
        { 
           if (!empty($row['domeinnaam1'])) $domains[] = $row['domeinnaam1'];
           if (!empty($row['domeinnaam2'])) $domains[] = $row['domeinnaam2'];
        }
    ?>

<select size="1" name="domeinnaam">
    <?php
        foreach ($domains as $domain)
        {
            echo "<option>$domain</option>";
        } 
    ?>
</select>

您应该使用PDO而不是mysql函数,否则ADODB库工作得很好。从PHP5.5开始,mysql_uu函数就被弃用了

      echo '<option>' . $row['domeinnaam1'] . $row['domeinnaam2'] . '</option>';

请参阅以获取PDO参考

您的代码不应该有这样的主要PHP配置或初始化。我看起来不聪明。整理一下

      echo '<option>' . $row['domeinnaam1'] . $row['domeinnaam2'] . '</option>';
<select size="1" name="domeinnaam"> 
  <?php 
  include '../config.php';
  $sql = "SELECT * FROM megabase";  
  $resultaat = mysql_query($sql) or die (mysql_error());  
  while ($row = mysql_fetch_array($resultaat))       
  { 
  echo '<option>' . $row['domeinnaam1'] . '</option>';
  }
  ?>
 </select>


  <?php 
  include '../config.php';
  $sql = "SELECT * FROM megabase";  
  $resultaat = mysqli_query($conn, $sql) or die ($conn->mysqli_error());  

  ?>
<select size="1" name="domeinnaam">
<?php
while ($row = mysqli_fetch_array($conn, $resultaat))       
      { 
      echo '<option>' . $row['domeinnaam1'] . '</option>';
      }
?>


 </select>

接下来,不要尝试破坏选项,可以使用JQuery等javascript框架实现更时尚的选择。我真的不认为你能做到这一点:

      echo '<option>' . $row['domeinnaam1'] . $row['domeinnaam2'] . '</option>';
while ($row = mysqli_fetch_array($conn, $resultaat))       
  { 
  echo '<option>' . $row['domeinnaam1'] . '<br />' .$row['domeinnaam2']. '</option>';
  }
while($row=mysqli\u fetch\u数组($conn,$resultaat))
{ 
回显“.$row['domeinnaam1']”。
“.$row['domeinnaam2']”; }
使用JQuery,您可以在div中创建一个列表项:

      echo '<option>' . $row['domeinnaam1'] . $row['domeinnaam2'] . '</option>';
<ul>
while ($row = mysqli_fetch_array($conn, $resultaat))       
      { 
      echo '<li>' . $row['domeinnaam1'] . '<br />' .$row['domeinnaam2']. '</li>';
      }
</ul>
    while($row=mysqli\u fetch\u数组($conn,$resultaat)) { 回显“
  • ”.$row['dominnaam1']”。
    “.$row['dominnaam2']”。
  • ; }
然后使用onclick事件将所选项目传递到一个隐藏字段,供以后使用

      echo '<option>' . $row['domeinnaam1'] . $row['domeinnaam2'] . '</option>';
如果您想在一个循环中显示10列作为单独的选项,可以这样做

      echo '<option>' . $row['domeinnaam1'] . $row['domeinnaam2'] . '</option>';
while ($row = mysqli_fetch_array($conn, $resultaat))       
{ 
echo '<option>' . $row['domeinnaam1'] .'</option>';
echo '<option>' . $row['domeinnaam2'] .'</option>';
echo '<option>' . $row['domeinnaam3'] .'</option>';
echo '<option>' . $row['domeinnaam4'] .'</option>';
echo '<option>' . $row['domeinnaam5'] .'</option>';
echo '<option>' . $row['domeinnaam6'] .'</option>';
echo '<option>' . $row['domeinnaam7'] .'</option>';
echo '<option>' . $row['domeinnaam8'] .'</option>';
echo '<option>' . $row['domeinnaam9'] .'</option>';
echo '<option>' . $row['domeinnaam10'] .'</option>';
}
while($row=mysqli\u fetch\u数组($conn,$resultaat))
{ 
回显'.$row['DominNaam1'].';
回显“.$row['Dominnaam2']”;
回显“.$row['DominNaam3']”;
回显“.$row['Dominnaam4']”;
回显'.$row['Dominnaam5'].';
回显'.$row['dominnaam6'].';
回显“.$row['DominNaam7']”;
回显'.$row['Dominnaam8'].';
回显“.$row['dominnaam9']”;
回显'.$row['DominnaaM10'].';
}

我想知道这在哪里有用,如何有用。编程中任何事情都可能发生。:)

首先,mysql不再安全。第二,我怀疑你有10列,它们的值不同,对吗?试着用索引号做一些事情。之前,使用$i=1;然后加上$i=$i+1;在循环中,将您的var命名为$row['dominnaam'+$i],这很难看,但会起作用。基本上,您希望在select元素中有一个表?Tim,我有一个包含以下列的数据库:id、customer、domain1、domain2、domain3、domain4等到10。因此,我想在下拉框中显示所有域名,直到Helge Helwig,不,我想显示所有域名的值,就像显示所有下拉框一样,我不想要表视图。你想在选择框中的单独选项中显示每个值吗?类似结果1结果2等。。。如果名称为domeinnaam1、domeinnaam2、domeinnaam3等的10个字段是这样的话?感谢zgr024,它显示了第一个和第二个域名,但它应该显示10。在domeinnaam1列中有9条记录,在domeinnaam2列中有1条记录。然后,您只需拉取所有记录,将域名放入数组,并在select中回显该数组。我已经用更新的代码更新了CodeOK,我得到了所有的结果,但是它也显示了很多空白,因为拥有1个域的客户比拥有2个域的客户多。是否有一种方法可以忽略空记录。zrg024谢谢你让我这么做,我已经更新了代码,忽略了
'
的值,这意味着空字符串美丽的代码和平它像一个符咒一样工作,你介意帮我解决一个错误吗?我在表格的下一页打开一个新问题,我会在这里放一个链接谢谢你的回复Steward。我调查了你的答案。再次感谢另一种表达感谢的好方法是投票或接受答案。谢谢,:)我还没被允许。我还是这个网站上的雅皮士别担心,你上车吧。我8天前才开始回答问题。这地方真不错。别人会帮你做的。
      echo '<option>' . $row['domeinnaam1'] . $row['domeinnaam2'] . '</option>';