1

友達、私は PostgreSQL をバックエンドとして PHP プログラムを作成することにしました。ここでは、タイムテーブル (スケジュール) を表示し、ユーザーがラジオ ボタンを使用して 1 つのオプションを選択する必要があるページを作成したいと考えています。「選択した時間 - 15 分」をデータベースの特定のフィールドに渡す必要があります。使用した手法を以下に示します。

     $a=$dt[$m].' '.$ftime;
     for($j=1;$j<=$slots;$j++)
    {   
    echo "<td>";
    if($j==1)
    {   
    $a= date("Y-m-d H:i:s", strtotime("$a + 0 minutes"));
    $value= date("Y-m-d^H:i:s", strtotime("$a + 0 minutes"));
    }
    else
    {
    $a= date("Y-m-d H:i:s", strtotime("$a + $intl minutes"));
    $value= date("Y-m-d^H:i:s", strtotime("$a + $intl minutes"));   
    }  
    $b=explode(" ",$a);  
    if(!in_array($a,$res_tm))   
    echo "<input type='radio' name='radio1' value=$value> $b[1]";
    else echo "Reserved";

form タグを使用して、別のページでデータベース操作を実行しました。しかし、問題は、正しい値を保存したいということです.しかし、これでは、常に選択した値の増分$intl(15分)である値を取得しています。しかし、正しい値を渡したいです。$valueの値は常に実際の値よりも数分大きいことがわかりましたが、$intlそれを修正できませんでした..誰か助けてください

4

1 に答える 1

1

これは、「else」部分の $intl が 1 ではなく 2 から始まるためだと思います。「else」部分を通過するたびに、そこから 1 (または 15) を減算してみてください。

if($j==1)
{   
   // Here you want $intl == 0, which is $j - 1.
   // Actually, you can drop the '+ 0 minutes' altogether
   $a= date("Y-m-d H:i:s", strtotime("$a"));
   $value= date("Y-m-d^H:i:s", strtotime("$a"));
}
else
{
   // I am guessing here, since I don't know the contents of $intl or $j.
   // You probably need either $intl - 1 or $j - 1.
   $intl_adjusted = $intl - 1;
   $a= date("Y-m-d H:i:s", strtotime("$a + $intl_adjusted minutes"));
   $value= date("Y-m-d^H:i:s", strtotime("$a + $intl_adjusted minutes"));   
}  
于 2013-08-14T08:55:16.600 に答える