0

私は小さなプロジェクトに取り組んでおり、ドロップダウン リストを動的に作成する必要がありました。私はその方法を見つけ、それに従ってコードを開発しました。を使用phpしてZend Frameworkおり、データベースはmysql.

ここに私のコードがあります:

以下はPVHandler.php、データベースに接続して値を取得するために使用したクラスです。

class PVHandler {

public function generateSelect(){

    try {
        $con = mysql_connect("localhost","root","");
        mysql_select_db("accounts_db",$con);

    $data = mysql_query('SELECT `desc` FROM `expense` LIMIT 0 , 30');
    } catch (Exception $e) {
        die('Error!!!'.$e);
    }
    $desc = mysql_fetch_array($data);
    $html = '<select name="expenses">';
    foreach ($desc as $des){
        $html.='<option value='.$des.'>'.$des.'</option>';
    }
    $html.='</select>';
    return $html;
}

}

?>

generateSelect()上記のクラスのメソッドは、ファイル内で呼び出されますnewPV.phtml

はい、これ。

<html xmlns="http://www.w3.org/1999/xhtml" lang = "en">
<style>
</style>
<head></head>
<body>
 <div><?php include APPLICATION_PATH.'/views/scripts/layouts/header.php';?></div>
  <div id="title"><h3>TSDC Lanka (Private) Ltd.</h3>
  <h2>Payment Voucher</h2></div>
   <div id="content"><form action="#" method="post">
    Date : <input type="text" name="date" id="dt" value=<?php echo date("j/M/Y");?>></td>
<span style="align:right;">Document No: <input type="text" name="docNo"><br><br></span>
Cheque No: <input type="text" name="cheqNo" ><br><br>
Payment in favour of : <input type="text" name="payin" style="width:700px"><br><br>
Description :  <?php include APPLICATION_PATH.'/models/db/PVHandler.php';
 $pv = new PVHandler();             /*Here I have called the method*/
 $html= $pv->generateSelect();
  echo $html; ?>
</form></div>
</body>
</html>

データベースのexpenseテーブルの費用を取得したい。accounts_db

これらの値をテスト用にデータベースに入力しました。

exid      desc
 1         Water
 2         Electricity
 3         Salaries
 4         Printing and Stationary

出力には、「水」のドロップダウン リストのみが表示されます。「水」が2回表示されます。

なぜこれが起こるのですか?私を助けてください。

前もって感謝します

チャル

4

1 に答える 1

1

mysql_fetch_array は、データベースの 1 行のみを選択します。すべての結果を選択するには、while ループを使用する必要があります。

$html = '<select name="expenses">'; 
while($desc = mysql_fetch_array($data)) {
    $html.='<option value='.$desc['desc'].'>'.$desc['desc'].'</option>'; 
}

データを使用して配列を作成し、foreach を使用してデータを書き込むことができます。

于 2012-07-09T09:56:42.847 に答える