0

ページのコードが読み込まれないようです。プログラム ロジックが少し重いようです。

$resultromney = mysql_query("SELECT category, value, timestamp from results where name='".$chartname2."'");
if (!$resultromney) {
    die('Invalid query, please contact administrator');
}

$posromney = 0;
$negromney = 0;
$dateromney = "1/1/2012";
$romray = array();

while ($twitromney = mysql_fetch_assoc($resultromney)) 
{

$romneytime = intval($twitromney["timestamp"]);
$romneydate = date('m/d/Y', $romneytime);
$romlinearray = array();
$romlinearray["date"] = null;
$romlinearray["value"] = null;
$romneydiff = date_diff($dateromney, $romneydate);

$PLromney = 0;
$NLromney = 0;
$totalromney = 0;

if ($romneydiff == 0) {


switch ($twitromney["category"]) {
    case "composed":
        $PLromney = $PLromney + $twitromney["value"];
break;
    case "elated":
        $PLromney = $PLromney + $twitromney["value"];
break;
    case "clearheaded":
        $PLromney = $PLromney + $twitromney["value"];
break;
    case "agreeable":
        $PLromney = $PLromney + $twitromney["value"];
break;
    case "energetic":
        $PLromney = $PLromney + $twitromney["value"];
break;
    case "unsure":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "tired":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "depressed":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "guilty":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "confused":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "anxious":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "hostile":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "confident":
        $PLromney = $PLromney + $twitromney["value"];
break;
}
$totalromney = $PLromney - $NLromney;

$romlinearray["value"] = $totalromney + $romlinearray["value"];
}

else {

$dateromney = $romneydate;

switch ($twitromney["category"]) {
    case "composed":
        $PLromney = $PLromney + $twitromney["value"];
break;
    case "elated":
        $PLromney = $PLromney + $twitromney["value"];
break;
    case "clearheaded":
        $PLromney = $PLromney + $twitromney["value"];
break;
    case "agreeable":
        $PLromney = $PLromney + $twitromney["value"];
break;
    case "energetic":
        $PLromney = $PLromney + $twitromney["value"];
break;
    case "unsure":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "tired":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "depressed":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "guilty":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "confused":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "anxious":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "hostile":
        $NLromney = $NLromney + $twitromney["value"];
break;
    case "confident":
        $PLromney = $PLromney + $twitromney["value"];
break;
}
$totalromney = $PLromney - $NLromney;

$romlinearray["date"] = $romneydate;
$romlinearray["value"] = $totalromney;
}

$romray[] = $romlinearray;

}

値の数値が異なるさまざまな日の配列を計算することになっていますが、代わりにページが読み込みを拒否していますが、このコードをそこに置く前に読み込みました。

4

3 に答える 3

1

なぜあなたはケースを繰り返しケースに入れているのですか?

switch ($twitromney["category"]) {
    case "composed":
    $PLromney = $PLromney + $twitromney["value"];
break;
    case "elated":
    $PLromney = $PLromney + $twitromney["value"];
break;
    case "clearheaded":
    $PLromney = $PLromney + $twitromney["value"];
break;
    case "agreeable":
    $PLromney = $PLromney + $twitromney["value"];
break;
    case "energetic":
    $PLromney = $PLromney + $twitromney["value"];
break;
    case "unsure":
    $NLromney = $NLromney + $twitromney["value"];
break;
    case "tired":
    $NLromney = $NLromney + $twitromney["value"];
break;
    case "depressed":
    $NLromney = $NLromney + $twitromney["value"];
break;
    case "guilty":
    $NLromney = $NLromney + $twitromney["value"];
break;
    case "confused":ss
    $NLromney = $NLromney + $twitromney["value"];
break;
    case "anxious":
    $NLromney = $NLromney + $twitromney["value"];
break;
    case "hostile":
    $NLromney = $NLromney + $twitromney["value"];
break;
    case "confident":
    $PLromney = $PLromney + $twitromney["value"];
break;
}

上記の使用の代わりに:

switch ($twitromney["category"]) {
    case "composed":
    case "elated":
    case "clearheaded":
    case "agreeable":
    case "energetic":
    case "confident":
    $PLromney = $PLromney + $twitromney["value"];
break;
    case "unsure":
    case "tired":
    case "depressed":
    case "guilty":
    case "confused":
    case "anxious":
    case "hostile":
    $NLromney = $NLromney + $twitromney["value"];
break;
}

すべての DUMPS をチェックするようにコードを変更しました。以下のアリ テスト ダンプを参照してください。

    $resultromney = mysql_query("SELECT category, value, timestamp from results where name='".$chartname2."'")

    var_dump('[1]:'.$resultromney);

    if (!$resultromney) {
        die('Invalid query, please contact administrator');
    }

    $posromney = 0;
    $negromney = 0;
    $dateromney = "1/1/2012";
    $romray = array();

    while ($twitromney = mysql_fetch_assoc($resultromney)) 
    {

        var_dump('[2]:'.$twitromney);

    $romneytime = intval($twitromney["timestamp"]);

        var_dump('[3]:'.$romneytime);   

    $romneydate = date('m/d/Y', $romneytime);

        var_dump('[4]:'.$romneydate);   

    $romlinearray = array();
    $romlinearray["date"] = null;
    $romlinearray["value"] = null;

        var_dump('[5]:'.$romlinearray); 

    $romneydiff = date_diff($dateromney, $romneydate);

        var_dump('[6]:'.$romneydiff);   

    $PLromney = 0;
    $NLromney = 0;
    $totalromney = 0;

    if ($romneydiff == 0) {

        var_dump('[7]:'.$romneydiff);   


    switch ($twitromney["category"]) {

        var_dump('[8]:'.$twitromney);   

        case "composed":
        case "elated":
        case "clearheaded":
        case "agreeable":
        case "energetic":
        case "confident":
        $PLromney = $PLromney + $twitromney["value"];
    break;
        case "unsure":
        case "tired":
        case "depressed":
        case "guilty":
        case "confused":
        case "anxious":
        case "hostile":
        $NLromney = $NLromney + $twitromney["value"];
    break;
    }

        var_dump('[8]:'.$PLromney);
        var_dump('[9]:'.$NLromney);

    $totalromney = $PLromney - $NLromney;

    $romlinearray["value"] = $totalromney + $romlinearray["value"];

        var_dump('[10]:'.$totalromney, $romlinearray);

    }

    else {

    $dateromney = $romneydate;

    switch ($twitromney["category"]) {

        var_dump('[11]:'.$twitromney);  

        case "composed":
        case "elated":
        case "clearheaded":
        case "agreeable":
        case "energetic":
        case "confident":
        $PLromney = $PLromney + $twitromney["value"];
    break;
        case "unsure":
        case "tired":
        case "depressed":
        case "guilty":
        case "confused":
        case "anxious":
        case "hostile":
        $NLromney = $NLromney + $twitromney["value"];
    break;
    }

        var_dump('[12]:'.$PLromney);
        var_dump('[13]:'.$NLromney);

    $totalromney = $PLromney - $NLromney;

    $romlinearray["date"] = $romneydate;
    $romlinearray["value"] = $totalromney;

        var_dump('[14]:'.$totalromney, $romlinearray);

    }

    $romray[] = $romlinearray;


    var_dump('[15]:'.$romray);

    }

そして @Tivie は、このコードはより適切に記述できると言っています。はい、それは本当です。書くことを減らして、もっとやりましょう。

于 2012-10-20T21:52:13.620 に答える
1

このコードは、おそらく別の方法で記述できます。

提案:

代わりに MySQLi または PDO を使用してください。データベース API の選択に関するドキュメントを次に示します。例:

$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query( 
   sprint_f("SELECT category, value, timestamp from results where name='%s'", $chartname2) 
);

配列を使用してデータを保存し、結果を取得した後にループします。

$romneytime = $romneydate = $romlinearray = $romneydiff = array();

while ($twitromney = $result->fetch_assoc()) 
{
    $romneytime[] = intval($twitromney["timestamp"]);
    $romneydate[] = date('m/d/Y', $romneytime);
    $romneydiff[] = date_diff($dateromney, $romneydate);
}

それぞれをループして、どれがエラーを出しているかを突き止めようとします。var_dump($var) が便利です。

于 2012-10-20T22:00:51.913 に答える
0

おそらくエラーです。

/var/logs/apache2/error_log.log で、Apache の php ログ (または使用しているログ) を確認してください。

それとも似たような...

于 2012-10-20T21:43:03.240 に答える