使用PHP数组

时间:2016-11-03 11:14:53

标签: php mysql

我有一个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>

1 个答案:

答案 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
}


所以现在要获得下拉列表的打印,您需要使用附加参数“是”来调用您的函数。多数民众赞成