【问题标题】:insert information from database into drop down list menu using PHP and SQL使用 PHP 和 SQL 将数据库中的信息插入下拉列表菜单
【发布时间】:2015-10-29 07:39:17
【问题描述】:

如何将我的数据库信息插入列表?

<?php

$db_host = 'localhost';
$db_name= 'site';
$db_table= 'tablesite';
$db_user = 'root';
$db_pass = '';




$con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده");
$selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده");
mysql_query("SET CHARACTER SET  utf8");
$dbresult=mysql_query("SELECT * FROM  $db_table WHERE job<>''",$con);
while($amch=mysql_fetch_assoc($dbresult))
{?>

<select>

<option value="$amch['job_name']"></option>

</select>

例如,我的数据库中有 15 个工作,现在我想要一个包含所有 15 个工作的下拉列表。

【问题讨论】:

  • 所以我假设一切都在工作,但你需要做一个下拉列表,其中有 15 个工作工作?对吗?
  • @maytham-ɯɐɥıλɐɯ 15 或更多或更少,我可以删除一些工作还是我想要超过 15。可能吗?
  • btw mysql 已弃用,不建议使用更长时间。使用 mysqli 或 pdo
  • 是的,我会尽量回答你的问题,让我花点时间
  • @maytham-ɯɐɥıλɐɯ: 非常感谢...

标签: php mysql


【解决方案1】:

你需要像这样改变你的while循环:

$dbresult=mysql_query("SELECT * FROM  $db_table WHERE job<>''",$con);
echo '<select>';
echo '<option></option>'; // add a empty select as first dropdown element, you can use <option value="">-Select-</option> OR <option value="">-Not Applicable-</option>
while($amch=mysql_fetch_assoc($dbresult))
{
   echo '<option value="'.$amch['job_name'].'">'.$amch['job_name'].'</option>';
}
echo '</select>';

这里的 value 属性不是必需的,因为选项文本是相同的。

【讨论】:

  • 那是真的,我忘了一件事,我在第一次工作时需要一个空记录,因为有些人没有工作。有可能吗?
  • 感谢朋友感谢!我的声誉低于 15,所以我不能投票给你,你帮了我太多了 :)
  • 朋友一个问题,为什么我不能在这里使用
    ? echo "توانمندی مورد نظر خود را انتخاب نمایید: ";
    echo '
  • 我明白了,因为
    是 php 格式:p
  • @sajad:正确。将 br 放入 echo (echo '&lt;br /&gt;';) 或 close-re-open php 标签(?&gt; &lt;br /&gt; &lt;?php)。
【解决方案2】:
<?php
$db_host = 'localhost';
$db_name= 'site';
$db_table= 'tablesite';
$db_user = 'root';
$db_pass = '';

$con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده");
$selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده");
mysql_query("SET CHARACTER SET  utf8");
$dbresult=mysql_query("SELECT * FROM  $db_table WHERE job<>''",$con);
echo "<select name=\"dropdown\">";
while($amch=mysql_fetch_array($dbresult))
{
    echo "<option value=".$amch['job_name'].">".$amch['job_label']."</option>";
}
echo "</select>";
?>

试试这个,其中 job_label 将是数据库中实际作业的名称,在下拉列表中显示为值。并且 job_name 是您希望它必须识别在下拉列表中选择了哪个作业的实际值(实际上是 $_POST['dropdown'] 的值)。

【讨论】:

  • 朋友,它只是打印了所有记录,我需要一个可以选择工作的下拉列表。 :(
【解决方案3】:

你应该把 while 循环放在 select 块中,并使用 mysqli(改进) -

<?php

$db_host = 'localhost';
$db_name= 'site';
$db_table= 'tablesite';
$db_user = 'root';
$db_pass = '';




$con = mysqli_connect($db_host,$db_user,$db_pass,$db_name) or die("خطا در اتصال به پايگاه داده");
mysqli_query("SET CHARACTER SET  utf8");
$dbresult=mysqli_query("SELECT * FROM  $db_table WHERE job<>''",$con);
?>

<select>

<?php while($amch=mysqli_fetch_assoc($dbresult))
{?>

<option value="<?php echo $amch['job_name']?>"><?php echo $amch['job_name']?></option>

<?php } ?>

</select>

【讨论】:

    【解决方案4】:
    $con = mysql_connect($db_host,$db_user,$db_pass) or die("خطا در اتصال به پايگاه داده");
    $selected=mysql_select_db($db_name, $con) or die("خطا در انتخاب پايگاه داده");
    mysql_query("SET CHARACTER SET  utf8");
    $dbresult=mysql_query("SELECT * FROM  $db_table WHERE job<>''",$con);
    echo "<select>";
    while($amch=mysql_fetch_assoc($dbresult))
    {
        ?>
        <option value="<?php echo $amch['job_name']; ?>"><?php echo $amch['job_name']; ?></option>
        <?php
    }
    echo "</select>";
    

    【讨论】:

    • 那是真的,我忘了一件事,我在第一次工作时需要一个空记录,因为有些人没有工作。有可能吗?
    • 这是可能的,只需在你的
    【解决方案5】:

    我知道这来晚了,但我之前在我的 cmets 中写道,mysql 已被弃用,使用它不好,大多数答案都是基于弃用的方法。

    使用 mysql 的风险在于,当您过滤作业时,您可能会冒一些主体注入 sql 语句并返回所有作业列表的风险,并且在这种情况下可能会使您的服务器过载。

    另一件事是你的变量名可能会让你长期感到困惑,我将使用易于理解的名称。

    你的代码应该是这样的:

    <?php
    
    $db_hostname = 'localhost';
    $db_database = 'site';
    $db_username = 'root';
    $db_password = '';
    
    $db_table = 'tablesite';
    $job = '';
    
    // Create connection
    $conn = new mysqli($db_hostname, $db_username, $db_password, $db_database);
    
    // Check connection
    if ($conn->connect_error)
        die("خطا در اتصال به پايگاه داده" . $conn->connect_error);
    
    $job = mysqli_real_escape_string($conn, $job);
    
    //since user and password is not blank, find user info using the email and password entered by user
    $sql = "SELECT * FROM `$db_table` WHERE job <> ?";
    $stmt = $conn->prepare($sql);
    
    $stmt->bind_param("s", $job);
    $stmt->execute();
    
    $output = $stmt->get_result();
    
    echo "<select>";
    while ($row = $output->fetch_array(MYSQLI_NUM))
    {
        echo "<option value=" . $row[0] . ">" . $row[1] . "</option>";
    }
    echo "</select>";
    

    【讨论】:

    • 嗯,看来您花了太多时间解决我的问题,所以我特别感谢您...
    • 不客气,我很高兴。重要的是你要从中学习。我希望您以任何方式重新考虑将其作为答案
    • 嗨 میثم:你也可以看看这个帖子吗?我想你可以帮助我:stackoverflow.com/questions/33460844/…
    • 我肯定会做@sajad
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    相关资源
    最近更新 更多