我有一个包含人名的列表框。在“请求者”列中,有许多名称以相同的名称重复。因此,当我创建列表框时,名称会显示所有名称,而某些名称会显示多个具有相同名称的名称。我怎么能让名字只出来一个。以下是我的代码。
<select name="requestor" id="requestor">
<option value="0">-- Select requestor --</option>
<?php
$getallCapex_transaction = mysql_query("SELECT * FROM capex_transaction ");
while($viewallCapex_transaction = mysql_fetch_array($getallCapex_transaction))
{
?>
<option id="<?php echo $viewallCapex_transaction ['Project_id'];?>"><?php
echo $viewallCapex_transaction['Requestor']; ?></option>
<?php } ?>
</select>
还有一个问题,如何显示与mySql连接的月份和年份列表?有人可以给我看一些代码。感谢
答案 0 :(得分:0)
好吧,如果有多个行具有相同的&#34;请求者&#34;但是不同的&#34; Project_id&#34;,这就是它将如何发展。你可以在SQL中选择不同的Requestor,但这会让你不知道你指的是什么记录。
答案 1 :(得分:0)
将您的值放在数组中,并使用array_unique
之类的内容来创建一个唯一的数组。尝试这样的事情:
<?php
$requestorArray = array();
?>
<select name="requestor" id="requestor">
<option value="0">-- Select requestor --</option>
<?php
$getallCapex_transaction = mysql_query("SELECT * FROM capex_transaction ");
while($viewallCapex_transaction = mysql_fetch_array($getallCapex_transaction))
{
$requestorArray[$viewallCapex_transaction ['Project_id']] = $viewallCapex_transaction['Requestor'];
}
$requestorArray = array_unique($requestorArray);
foreach($requestorArray as $projectId => $requestor)
?>
<option id="<?php echo $projectId;?>"><?php
echo $requestor; ?></option>
<?php } ?>
</select>