2013-06-12 10 views
1

Я надеялся, что кто-то может помочь с головоломкой. Я использую substr, чтобы дать реферат статей. Теперь проблема заключается в том, когда вы щелкаете по ссылке, чтобы увидеть всю статью, которую вы все еще видите версию substr. Теперь это, очевидно, происходит из-за способа кода. Но может ли кто-нибудь помочь с альтернативой, поэтому, когда вы нажмете ссылку, вы сможете увидеть полную статью?PHP: Альтернативный дисплей

<?php 
class MyCMS 
{ 
function get_content($id = "") 
{ 
    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>'; 
      echo substr('<p>' . $row['body'] . '</p>',0, 90)." .... "." read more </div>"; 
     } 
     else: 
      echo '<p> UH OOH! THERE IS NO SUCH PAGE IT DOES\'T EXIST </p>'; 
      echo $return; 
     endif; 

} 


} 
?> 
+0

Вместо того, чтобы решать это в PHP может быть лучше использовать текст переполнение CSS в: ellispse на контейнере статьи. – Orangepill

+1

Или используйте 2 запроса и один, который обрабатывает абстрактный, используя только SQL. – nickhar

+0

благодарит ребята за две хорошие идеи. ура – user2480085

ответ

0

Проблема в том, что вы делаете две разные вещи с помощью одного скрипта и одной функции. Вы должны сделать два отдельных сценария и две функции. Таким образом, было бы легче понять, что происходит. Что-то вроде:

class MyCMS 
{ 
    function get_content($id) 
    { 

     $id = mysql_real_escape_string($id); 
     $sql = "SELECT * FROM content WHERE blog_id = '$id'"; 
     $res = mysql_query($sql) or die(mysql_error()); 
     if(mysql_num_rows($res) !=0) { 
      //display the content of the article 
     } else { 
      //ooops that article does not exist, link to index.php 
     } 
    } 


    function getLinks() 
    { 
     $sql = "SELECT blog_id, title, date, body FROM content ORDER BY blog_id DESC LIMIT 0, 3"; 
     if(mysql_num_rows($res) !=0){ 
      while($row = mysql_fetch_assoc($res)) { 
       //see : href="article.php ... ! 
       echo '<div id="roundedbox"><h2><a href="article.php?id=' . $row['blog_id'] . '">' . $row['title'] . ' </a></h2>'; 
       echo '<div id="date"><h5><p>' . $row['date'] . '</p></h5></div>'; 
       echo substr('<p>' . $row['body'] . '</p>',0, 90)." .... "." read more </div>"; 
      } 

     } 
    } 
} 

, а затем две страницы

index.php

//getLinks 

article.php

$id = $_GET['id']; 
//get_content($id); 
0

Почему бы вам не проверить код как ниже ?? Код, который я написал для написания, имеет хорошую структуру, которую вы сейчас делаете.

пожалуйста рассмотрим ниже код

<?php 

class MYCMS{ 


function get_content($id=""){ 


if(is_numeric($id) && ($id!=""){ 

//no validation required because id can only be a number and could not be blank // 

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



if(mysql_num_rows($sql)< 1){ 

//show message if no article is found // 

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


} 




else{ 

//If article is found // 


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>'; 
      echo substr('<p>' . $row['body'] . '</p>',0, 90)." .... "." read more </div>"; 
     } 


} 

// 




} 

// If id is not numeric or blank // 

else{ $return = '<p><a href="index.php"> Go Back To Content Page</a></p>';  } 


} 



} 


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