0

恥ずかしい間違いを犯したと確信していますが、それを見つけることはできません。私が見ることができる限り動作するはずの次のphpコードがあります。ただし、$minute[19]たとえば印刷すると、ブラウザにインデックスが未定義であるという通知が表示されます。

ちなみに、認識されている唯一のインデックスは のよう[0]です。

$getdata = mysql_query("SELECT * FROM visitors ORDER BY ID DESC LIMIT 20");

$datetime = array();
$time = array();
$parsed = array();
$hour = array();
$minute = array();
$second = array();

$result = mysql_fetch_assoc($getdata);

$i = 0;

while($result = mysql_fetch_assoc($getdata))
{
    $datetime[$i] = $result['datetime'];
    $time[$i]= $datetime[$i];
    $parsed[$i] = date_parse($time[$i]);
    $hour[$i] = $parsed[$i]['hour'];
    $minute[$i] = $parsed[$i]['minute'];
    $second[$i] = $parsed[$i]['second'];
}
$i++;

例えば

print_r($minute[19]); // this isn't working
4

3 に答える 3

3

インクリメントをループに移動する必要があります。

$getdata = mysql_query("SELECT * FROM visitors ORDER BY ID DESC LIMIT 20");

$datetime = array();
$time = array();
$parsed = array();
$hour = array();
$minute = array();
$second = array();

$i = 0;

while($result = mysql_fetch_assoc($getdata))
{
    $datetime[$i] = $result['datetime'];
    $time[$i]= $datetime[$i];
    $parsed[$i] = date_parse($time[$i]);
    $hour[$i] = $parsed[$i]['hour'];
    $minute[$i] = $parsed[$i]['minute'];
    $second[$i] = $parsed[$i]['second'];
    $i++;
}

変数を完全に使用せずに行うこともできます...次のようなもの:

$getdata = mysql_query("SELECT * FROM visitors ORDER BY ID DESC LIMIT 20");

$hour = array();
$minute = array();
$second = array();

while($result = mysql_fetch_assoc($getdata))
{
    $parsed = date_parse($result['datetime']);
    $hour[] = $parsed['hour'];
    $minute[] = $parsed['minute'];
    $second[] = $parsed['second'];
}
于 2013-02-06T18:04:50.880 に答える
1

結果を取得する場所は 2 つあります。あなたの例の10行目に1つ:

$result = mysql_fetch_assoc($getdata);

そして14行目に1つ:

while($result = mysql_fetch_assoc($getdata))

10 行目でフェッチされた最初のレコードは、while ループの先頭で新しいフェッチによって上書きされています。したがって、予想よりも 1 レコード少ないようです。

于 2013-02-06T18:05:40.670 に答える
0

その $i++; を追加する必要があります。その外ではなくループに:)しかし、このアプローチを使用することはお勧めしません。おそらく、そのような配列から特定のキーが必要な理由を説明する必要があります。そうすれば、人々はあなたをよりよく助けることができます。

于 2013-02-06T18:04:15.463 に答える