2013-06-13 3 views
1

Эй, ребята, они написали CMS, но у меня проблемы, и вам нужны свежие пары глаз. Я получаю эту ошибку: Ошибка синтаксиса: ошибка синтаксиса, неожиданная '}' в строке чуть выше последней инструкции else, но для этого нет оснований.PHP: проблемы с CMS

Идея состоит в том, чтобы отображать субстрат статей, а затем щелкнуть их, чтобы получить полную статью. Может кто-то взглянуть на мой код и рассказать мне, где я ошибаюсь, или если это будет работать.

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; 
? 
+0

брат .. get_content ($ _ GET ['id'], TRUE); else: echo $ obj-> get_content ($ _ GET ['id']); endif; ?> Эта логика неверна. –

ответ

1

Вы забыли добавить ENDIF (для если заявление внутри цикла) и} (для класса закрытия). Проверьте этот код.

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; 

} 

} 

Также, пожалуйста, обратите внимание, что второй код логика совершенно неправильно ..

<?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; 
?> 
+0

теперь говорит, что у меня есть неопределенный индекс: id 'echo $ obj-> get_content ($ _ GET ['id']);' любые идеи? – user2480085

+0

id, не проходящий через URL. проверьте, что это .. –

Смежные вопросы