0

我有以下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>

我试图添加 2nd echo,但这破坏了代码。我也试过

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

但这没有用。因为结果将显示如下: domain1
domain1
domain1domain2

它应该是


1 域
1 域1
域2

什么会起作用?

4

2 回答 2

0

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

<?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 库运行良好。mysql_ 函数自 PHP 5.5 起已弃用

有关 PDO 参考,请参阅http://www.php.net/manual/en/pdo.construct.php

于 2013-03-04T15:32:26.237 回答
0

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

<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 框架来实现更时尚的选择。我真的不认为你可以这样做:

while ($row = mysqli_fetch_array($conn, $resultaat))       
  { 
  echo '<option>' . $row['domeinnaam1'] . '<br />' .$row['domeinnaam2']. '</option>';
  }

使用 JQuery,您可以在 div 中列出一个列表项:

<ul>
while ($row = mysqli_fetch_array($conn, $resultaat))       
      { 
      echo '<li>' . $row['domeinnaam1'] . '<br />' .$row['domeinnaam2']. '</li>';
      }
</ul>

然后使用 onclick 事件将所选项目传递到隐藏字段以供以后使用。

如果您想在一个循环中将 10 列显示为单独的选项,则可以这样做。

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>';
}

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

于 2013-03-04T16:02:00.947 回答