我有一个php函数,它从数据库中获取作者列表...我试图让这个列表显示在下拉菜单中,所以当用户按作者选择时它会显示为列表作者构成数据库...我不想手动输入作者,但我希望它使用该函数来填充列表。这是我的getAuthors函数
<?php
function getAuthors($db, $isbn)
{
$query = 'SELECT first_name, last_name
FROM books_authors
INNER JOIN authors ON authors.author_id = books_authors.author_id
WHERE isbn = :isbn
ORDER BY author_ordinal';
$statement = $db->prepare($query);
$statement->bindValue(':isbn', $isbn);
$statement->execute();
$authors = $statement->fetchAll();
$statement->closeCursor();
$authorString = "";
$count = 1;
foreach ($authors as $author)
{
$authorString = $authorString . $author['first_name'] . ' ' . $author ['last_name'];
if ($count < $statement->rowCount())
$authorString = $authorString . ", ";
$count++;
}
return $authorString;
}
?>
这是我的下拉菜单
<select name ="searchtype">
<option value="author"> By author: </option>
答案 0 :(得分:0)
if(stcmp($ishtml,"yes")== 0)
{ ?>
<select name ="searchtype">
<option value="author"> By author: </option>
<? } foreach ($authors as $author)
{
$authorString = $authorString . $author['first_name'] . ' ' . $author ['last_name'];
if ($count < $statement->rowCount())
$authorString = $authorString . ", ";
$count++;
if(stcmp($ishtml,"yes")== 0)
{
?> <option value="<? echo $authorString; ?>"> <? echo $authorString; ?> </option>
<?
}
}
只需更改你的foreach代码,它应该可以工作,你可以添加一个默认参数来请求显示HTML代码。
用这个改变你的函数头:
function getAuthors($db, $isbn,$ishtml="no")
{
... code below
}
所以现在要获得下拉列表的打印,您需要使用附加参数“是”来调用您的函数。多数民众赞成