2016-11-03 3 views
0

データベースから著者のリストを取得するphp関数があります。このリストをドロップダウンメニューに表示しようとしています。作成者によって選択します。著者のリストとしてデータベースの形で表示されます。著者を手動で入力する必要はありませんが、リストを作成する関数を使用したいと思います。これは私のgetAuthors関数ですPHP配列を使用したドロップダウンメニューの表示

<?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

これはすでに何度も尋ねられてきました。あなたは本当に答えを探しましたか? 「関連する」トピックを見てください。 – RST

答えて

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 
} 


をだから今、あなたが「はい」の追加パラメータを使用して関数を呼び出す必要があるドロップダウンの印刷を取得します。それは

関連する問題