0

データベースと PHP を使用して財政を管理するための作業を行っています。私のホームページから月を選択してクエリを実行させ、その月のデータベース内のレコードのみが表示されるようにします。

今私はこれを持っています:

if (isset($_GET['january2013'])) 
{
//Select the incomes
try
    {
        $sql = 'SELECT id, type, date, amount, description, category FROM `transactions`
        WHERE type = "income"
        AND month(date) = ' . $monthselect . '
        ORDER BY `transactions`.`id` DESC
        LIMIT 0,50';
        $result2 = $pdo->query($sql);
    }
//Error handling.
catch (PDOException $e)
    {
        $output3 = 'Error fetching records: ' . $e->getMessage();
        include '/errors/output.html.php';
        exit();
    }
//Display the records.
foreach ($result2 as $row)
    {
    $incomesJan2013[] = array(
            'id' => $row['id'],
            'type' => $row['type'],
            'date' => $row['date'],
            'amount' => $row['amount'],
            'description' => $row['description'],
            'category' => $row['category']
        );
    }

毎月このコードを作成する代わりに、どうすればこれをより普遍的にすることができますか? 変数を使用したいのですが$monthselect、どこから始めればよいかわかりません。

4

2 に答える 2

0

あなたのウェブページには、次のようなものがあります

<form action="where_you_handle_your_requests.php" method="POST">
    <select name="mo">
      <option value="january">January</option>
      <option value="february">February</option>
      <option value="march">March</option>
    </select> 
    <select name="yr">
      <option value="2010">2010</option>
      <option value="2011">2011</option>
    </select>
</form>

など。時間を節約し、スクリプトを記述して HTML を生成できます。

次に、php スクリプトで次のようにします。

if(isset($_POST['yr']) && isset($_POST['mo'])){
    $monthselect=$_POST['mo'].$_POST['yr'];
}else{
    //no input passed to script
}

ユーザーが 2013 年 1 月を選択した場合、monthselect は次のように設定されます。january2013

于 2013-06-20T19:06:09.047 に答える
0

あなたの質問を正しく理解できれば、これがあなたのやりたいことだと思います:

if (isset($_GET['date'])) {
    $monthselect = $_GET['date']
}

$_GETパラメータを次のように送信する必要があります?date=youDateHere

次に$monthselect、設定されている日付に等しくなります。

于 2013-06-20T18:58:02.047 に答える