dstar101 Posted March 28, 2010 Share Posted March 28, 2010 How do I add Text Formating to the Data retrieved from the Database and How do I limit the text retrieved from the DB I mean I want to Display Only 900Kbytes of text and Display link if user want to read more Here is my code: <?php session_start(); $state = $_SESSION['auth_state']; $login = ''; if($state == 1){ $login = '<a href="../login/logout.php">Logout</a>'; } elseif($state =! 1){ $login = '<a href="../login/login.php">Login</a>'; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Full Story</title> <link href="../_css.css" rel="stylesheet" type="text/css" /> </head> <?php require("../connectvars.php"); ?> <?php $author = $_GET['author']; $id = $_GET['id']; if(!empty($author) AND !empty($id)){ $query = "SELECT * FROM info WHERE author='{$author}' AND id={$id} ;"; $cxn = mysql_connect(server, user, pass) or die("USer or password incorrect"); mysql_select_db("books") or die ("DB books not found"); $res = mysql_query($query,$cxn)or die ("Query Failed"); while($row = mysql_fetch_array($res)){ $author = $row['author']; $synopsis = $row['story']; $article = $row['reading']; $title = $row['title']; } ?> <body> <table border="0" align="center"> <tr> <td class="nav">Author:<?php echo $author ; ?></td> <td class="dingbat">Title: <?php echo $title ; ?></td> </tr> <tr> <td><a href="../index.php">Main</a></td> <td class="nav">Summary<?php echo $synopsis ; ?></td> </tr> <tr> <td><?php echo $login; ?></td> <td class="sidebarHeader"><?php echo $article; ?></td> </tr> </table> <?php } else{ echo "Either ID or Author is Not Specified"; } ?> </body> </html> Quote Link to comment https://forums.phpfreaks.com/topic/196775-formatting-retrieved-data-from-database/ Share on other sites More sharing options...
TeddyKiller Posted March 28, 2010 Share Posted March 28, 2010 Well.. I know how to display a certain amount of characters. For example - This will display 50 characters. $synopsis = substr($row['story'],0,50); Keeping it simple, you could do something like... - This will display 50 characters, with a Read More after story snippet. $synopsis = substr($row['story'],0,50) .'..<a href="/my-page-to-display-news.php">Read More</a>'; As for only displaying Read More if there is more than 50 characters exceeded, you could do.. $synopsis = substr($row['story'],0,50); if($row['story'] > 50){ $synopsis .= '..<a href="/my-page-to-display-news.php">Read More</a>'; However this may display a resut if there is anumber bigger than 50, so you'll have to change it slightly to do it with characters. Could be either.. if(substr($row['story']) > 50) /* OR */ if(substr($row['story'] > 50)) Not sure though.. was an option I never tried. Quote Link to comment https://forums.phpfreaks.com/topic/196775-formatting-retrieved-data-from-database/#findComment-1033069 Share on other sites More sharing options...
dstar101 Posted March 28, 2010 Author Share Posted March 28, 2010 $synopsis = substr($row['story'],0,50) .'..<a href="/my-page-to-display-news.php">Read More</a>'; Thanks this code gets the work done never thought it was so simple I still want to format the text retrieved from the database using BBcodes (like one use in forums). And How can I filter PHP and Html Tags before entering the Text into Database Quote Link to comment https://forums.phpfreaks.com/topic/196775-formatting-retrieved-data-from-database/#findComment-1033131 Share on other sites More sharing options...
ignace Posted March 28, 2010 Share Posted March 28, 2010 LOL I laughed at: elseif($state =! 1){ $state = !1 <=> $state = 0 which means that the body (between { and }) of elseif($state = !1) never executes $synopsis = substr($row['story'],0,50); Is not a good idea you could get: He kissed my ass... while the long text would have been He kissed my assistant Use $synopsis = substr($row['story'], 0, strpos($row['story'], ' ', 50)); It also looks nicer if(substr($row['story']) > 50) /* OR */ if(substr($row['story'] > 50)) 'hello world' > 50 <=> 0 > 50 = always false in both above cases. You probably meant: if(strlen($row['story']) > 50) Quote Link to comment https://forums.phpfreaks.com/topic/196775-formatting-retrieved-data-from-database/#findComment-1033139 Share on other sites More sharing options...
dstar101 Posted March 28, 2010 Author Share Posted March 28, 2010 Is not a good idea you could get: Quote He kissed my ass... while the long text would have been Quote He kissed my assistant Do not worry about it ;) lols elseif($state =! 1){ I thought it meant if state is not equal to one Quote Link to comment https://forums.phpfreaks.com/topic/196775-formatting-retrieved-data-from-database/#findComment-1033144 Share on other sites More sharing options...
ignace Posted March 28, 2010 Share Posted March 28, 2010 I thought it meant if state is not equal to one That would be: != Quote Link to comment https://forums.phpfreaks.com/topic/196775-formatting-retrieved-data-from-database/#findComment-1033145 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.