が、これは特にタイトルに、説明には少し複雑です:論理エラーPHPループ状配列
私は12個のインデックス、毎月のための1とPHPの配列を作ってるんだ - 毎月が表示されます月を取得するために月に記録されたページビュー数、私は現在のUNIX時間を使用して2629743秒(1ヶ月)、ループが周回するたびに2629743秒が追加されます。 Jan(1、4、5、9)1ビュー、2月の4ビューなどの配列を生成します。
ビューがない場合は、null(null、null、9) Jan、2月、3月のいずれのビューも表示されませんが、インデックスは完全に台無しになり、ビューはwroに表示されます注文。
forループコード:
$Month = 1; // Start with January
$MonthTimestamp = 2629743; // Start with the time of ONE month from current time
$ArrayTimeStamp = array();
while ($Month <= 12): // Go from January to February
$Value1 = $now - $MonthTimestamp;
$ViewsThisMonth = mysqli_fetch_object(mysqli_query($db, "SELECT SUM(Views) AS NumberFinalViews FROM BlogViews WHERE TimeRecord >= '$Value1' AND TimeRecord < '$now'"));
$ArrayTimeStamp[] = $ViewsThisMonth->NumberFinalViews;
$MonthTimestamp = $MonthTimestamp + 2629743;
$Month++;
endwhile;
繰り返しに、配列は、データベースに格納されているページビューの各月を格納する必要があり、すべてのページビューは、これらのタイムスタンプは、タイムスタンプとともに保存されています12ヶ月間に分けてアレイに入れる必要があります。
2月のビュー数は2番目になければなりません。タイムスタンプは1月のタイムスタンプよりも大きく、3月よりも小さくなります。
すべてのお役に立ちました!
編集: $は現在のUNIX時間(秒)です。
ここで$はどこから来ますか? – rahul
単純に 'while(...){...}'の代わりに秘密の 'endwhile'を使用している理由は何ですか? – tadman
**警告**:mysqliを使用する場合、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param']( http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用してクエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 – tadman