我有一个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>
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
}
因此,现在要获得下拉列表的打印结果,您需要使用附加参数"yes"调用函数。这是它