1

こんにちは、CMS を書いていますが、問題があり、これに新鮮な目が必要です。次のエラーが表示されます: 解析エラー: 構文エラー、予期しない '}' が最後の else ステートメントのすぐ上の行にありますが、理由はありません。

アイデアは、記事の一部を表示し、それらをクリックして完全な記事を取得することです。誰かが私のコードを見て、どこが間違っているか、またはこれが機能するかどうかを教えてもらえますか。

class MyCMS 
{
function get_content($id = "", $excerpt = FALSE)
{
if ($id != ""):
    $id = mysql_real_escape_string($id);
    $sql = "SELECT * FROM content WHERE blog_id = '$id'";
    $return = '<p><a href="index.php"> Go Back To Content Page</a></p>';

else:
    $sql = "SELECT blog_id, title, date, body FROM content ORDER BY blog_id DESC LIMIT 0, 3";
endif;

$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res) !=0):
    while($row = mysql_fetch_assoc($res))
    {
        echo '<div id="roundedbox"><h2><a href="index.php?id=' . $row['blog_id'] . '">' . $row['title'] . ' </a></h2>';
        echo '<div id="date"><h5><p>' . $row['date'] . '</p></h5></div>';
        if ($excerpt):
            echo substr('<p>' . $row['body'] . '</p>',0, 90)." .... "." read more </div>";
        else:
            echo '<p>' . $row['body'] . '</p>';

    }
    else:
        echo '<p> UH OOH! THERE IS NO SUCH PAGE IT DOES\'T EXIST </p>'; 
        echo $return;
    endif;  

}


}

次に、メインページで次のようにコードを呼び出しています。

<?php
include 'cms.php';
$obj = new MyCMS(); 
?>


    <?php
    if(isset($_GET['id'])):
        echo $obj->get_content($_GET['id'], TRUE);
    else:
        echo $obj->get_content($_GET['id']);
    endif;
?
4

1 に答える 1

1

endif (ループ内の if ステートメント用) と } (クラスを閉じるため) を追加するのを忘れていました。このコードを確認してください。

class MyCMS 
{
function get_content($id = "", $excerpt = FALSE)
{
if ($id != ""):
    $id = mysql_real_escape_string($id);
    $sql = "SELECT * FROM content WHERE blog_id = '$id'";
    $return = '<p><a href="index.php"> Go Back To Content Page</a></p>';

else:
    $sql = "SELECT blog_id, title, date, body FROM content ORDER BY blog_id DESC LIMIT 0, 3";
endif;

$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res) !=0):
    while($row = mysql_fetch_assoc($res))
    {
        echo '<div id="roundedbox"><h2><a href="index.php?id=' . $row['blog_id'] . '">' . $row['title'] . ' </a></h2>';
        echo '<div id="date"><h5><p>' . $row['date'] . '</p></h5></div>';
        if ($excerpt):
            echo substr('<p>' . $row['body'] . '</p>',0, 90)." .... "." read more </div>";
        else:
            echo '<p>' . $row['body'] . '</p>';
        endif;

    }
    else:
        echo '<p> UH OOH! THERE IS NO SUCH PAGE IT DOES\'T EXIST </p>'; 
        echo $return;
    endif;  

}

}

また、2 番目のコード ロジックが完全に間違っていることに注意してください。

<?php
include 'cms.php';
$obj = new MyCMS(); 
?>


    <?php
    if(isset($_GET['id'])):
        echo $obj->get_content($_GET['id'], TRUE);
    else:
      //  echo $obj->get_content($_GET['id']); // This line is executing when $_GET['id'] is undefined.So dont use $_['id'] here.
    endif;
?>
于 2013-06-13T05:47:12.643 に答える