我如何将我的数据库信息插入列表?
<?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个作品的下拉列表。
答案 0 :(得分:1)
<?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 [&#39;下拉&#39;]的值)。
答案 1 :(得分: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属性,因为选项文本相同。
答案 2 :(得分:1)
你应该将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>
答案 3 :(得分:1)
$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>";
答案 4 :(得分:1)
我知道这已经很晚了,但我之前在评论中写道,不推荐使用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>";