Jump to content

limit data from array


jacko_162

Recommended Posts

i am calling an array for multiple fields and displaying them in a pagination on my custom cms script.

 

when i want to echo data i use:

<?=$data["content"]?>

 

how can i limit this to say only echo the first 40 characters of the data stored in the database,

 

for example i want it to display like this;

 

"this is some test content and the rest cannot be seen unless.............."

 

obviously the text is wrapped in a <a> tag and is clickable to see the rest of the content.

 

any help would be great  ;D

Link to comment
Share on other sites

To choose the first 40 characters might chop a word in half, I think better to display whole word.

// first find the first space after 40 characters, this should be the end of a word
$offset =strpos ( $data["content"], " " ,40) ;
//then put into variable
$shorter_list = substr ($data["content"],0,$offset);
//add the trailing dots
$shorter_list.="....";

Link to comment
Share on other sites

this works....

$data["content"]="a load of stuff a load of stuff a load of stuff a load of stuff a load of stuff a load of stuff "; 
  // first find the first space after 40 characters, this should be the end of a word
$offset =strpos ( $data["content"], " " ,40) ;
//then put into variable
$shorter_list = substr ($data["content"],0,$offset);
//add the trailing dots
$shorter_list.="....";
echo $shorter_list;

 

first echo $data["content"] and make sure it has content

Link to comment
Share on other sites

when i echo $data["content"] i get my data but the moment i echo $shorter_list i get nothing but the dots "...."

 

here is full code for the page, apologies for the tables etc... its already a working page :)

 

<?php
session_start();
?>
<? include("header.php") ?>
<?

$connect = @mysql_connect("$host", "$username", "$password");

if (!($connect)) // If no connect, error and exit().
{
echo("<p>Unable to connect to the database server.</p>");
exit();
}

if (!(@mysql_select_db($database))) // If can't connect to database, error and exit().
{
echo("<p>Unable to locate the $database.</p>");
exit();
}

if (!($limit)){
$limit = 5;} // Default results per-page.
if (!($page)){
$page = 0;} // Default page value.
$numresults = mysql_query("SELECT * FROM $table3 "); // the query.
$numrows = mysql_num_rows($numresults); // Number of rows returned from above query.
if ($numrows == 0){
echo("No Results Found, Please try another catagory!"); // bah, modify the "Not Found" error for your needs.
exit();}

$pages = intval($numrows/$limit); // Number of results pages.

// $pages now contains int of pages, unless there is a remainder from division.

if ($numrows%$limit) {
$pages++;} // has remainder so add one page

$current = ($page/$limit) + 1; // Current page number.

if (($pages < 1) || ($pages == 0)) {
$total = 1;} // If $pages is less than one or equal to 0, total pages is 1.

else {
$total = $pages;} // Else total pages is $pages value.

$first = $page + 1; // The first result.

if (!((($page + $limit) / $limit) >= $pages) && $pages != 1) {
$last = $page + $limit;} //If not last results page, last result equals $page plus $limit.

else{
$last = $numrows;} // If last results page, last result equals total number of results.

//escape from PHP mode.
?>
<html>
    <head>

        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <meta http-equiv="content-style-type" content="text/css" />
        <meta http-equiv="content-script-type" content="text/javascript" />
    <title>Cpanel - News</title>

</head>

<body>
<div id="content" class="basic">
<div id="container">
  <div class="inner-container">

			<!-- Main content – all content is within boxes. Feel free to add your boxes (see the examples on the bottom of this document) and your content within -->
			<div class="box box-75 altbox"><!-- .altbox for alternative box's color -->
				<div class="boxin">
					<div class="header">
						<h3>News  » All</h3>
				      <a class="button" href="addnews.php">Add News »</a><!-- Action button in the header of the box --><br>
                          <table width="100%" border="0" cellspacing="0" cellpadding="2">
                            <tr>
                              <td><h2>Results 
						  <strong><?=$first?></strong>
						 - 
						<strong><?=$last?></strong>
						 of 
						<strong><?=$numrows?></strong></h2></td>
                              <td><div align="right">
<h2> <a class="ico" href="<?=$PHP_SELF?>?query=<?=$query?>&page=<?=$page?>&limit=5"><strong><span class="whitelink"> 5</span></strong> <img src="images/results_5.gif" border="0"></a> <a class="ico" href="<?=$PHP_SELF?>?query=<?=$query?>&page=<?=$page?>&limit=10"> <strong><span class="whitelink">10</span></strong> <img src="images/results_10.gif" border="0"></a>  <a class="ico" href="<?=$PHP_SELF?>?query=<?=$query?>&page=<?=$page?>&limit=20"><strong><span class="whitelink"> 20</span></strong> <img src="images/results_20.gif" border="0"></a><img src="images/spacer.gif" width="15" height="1"></h2>
                              </div></td>
                            </tr>
                          </table>
                          
</div><div>
                             </div>
                          <div class="content">
						<table border="0" cellpadding="0" cellspacing="0">
							<thead>
								<tr>
								  <td><div align="left">Title</div></td>
									<th><div align="left">Content</div></th>
								  <td width="70" class="tc"><div align="left">Date</div></td>
								  <td width="50" class="tc"><div align="left">Time</div></td>
								  <td width="50" class="tc"><div align="right"></div></td>
                                        <?
//Go back into PHP mode.

// Now we can display results.
$results = mysql_query("SELECT * FROM $table3 ORDER BY id ASC LIMIT $page, $limit");
while ($data = mysql_fetch_array($results))
{
?>
</tr>
                              </thead>

<tbody>
  <tr class="first">
    <td class="tc"><div align="left">
      <?=$data["title"]?>
    </div></td>
    <td><div align="left">
<?php    
// first find the first space after 40 characters, this should be the end of a word
$offset =strpos ( $data["content"], " " ,40) ;
//then put into variable
$shorter_list = substr ($data["content"],0,$offset);
//add the trailing dots
$shorter_list_content="...."; 

    
      echo $shorter_list; ?>
    </div></td>
    <td width="70"><div align="left">
      <?=$data["date"]?>
    </div></td>
    <td width="50"><div align="left">
      <?=$data["time"]?>
    </div></td>
    <!-- a.ico-comms for comment-like backgrounds -->
    <td width="50"><div align="right"><a class="ico" id='tooltip' title='Edit This Item' href="editnews.php?ID=<?=$data["id"]?>"><img src="Includes/css/img/led-ico/pencil.png" border="0" /></a> <a class="ico" id='tooltip' title='Delete This Item' href="remove.php?ID=<?=$data["id"]?>&db=news"><img src="Includes/css/img/led-ico/delete.png" border="0" /></a>
      <? } ?>
    </div>							</td>
    </tr>
    </tbody>
</table>					  
<div class="pagination">
							<ul>

								  <?
if ($page != 0) { // Don't show back link if current page is first page.
$back_page = $page - $limit;
echo("<a href=\"$PHP_SELF?query=$query&page=$back_page&limit=$limit\">back</a>    \n");}

for ($i=1; $i <= $pages; $i++) // loop through each page and give link to it.
{
$ppage = $limit*($i - 1);
if ($ppage == $page){
echo("<b>$i</b> \n");} // If current page don't give link, just text.
else{
echo("<a href=\"$PHP_SELF?query=$query&page=$ppage&limit=$limit\">$i</a> \n");}
}

if (!((($page+$limit) / $limit) >= $pages) && $pages != 1) { // If last page don't give next link.
$next_page = $page + $limit;
echo("    <a href=\"$PHP_SELF?query=$query&page=$next_page&limit=$limit\">next</a>\n");}
?>

							</ul>
				</div></div></div>
</div>
            <div class="box box-25"><!-- box 25% width -->
				<div class="boxin">
					<div class="header">
						<h3>Menu</h3>
					</div>
					<div class="content">
                        
<ul class="simple"><!-- ul.simple for simple listings of pages, categories, etc. -->
<li><strong><a class="ico" title='Index Page' href="index.php"><img src="Includes/css/img/h-ico/Globe.png" border="0" /> Index</a></strong></li><!-- Add or Edit Index Page Main Menu Items -->
<li><strong><a class="ico" title='Products Page' href="mainproducts.php"><img src="Includes/css/img/h-ico/cash.png" border="0" /> Products</a></strong></li><!-- DONT FORGET TO EDIT TOOLTIP! -->
<li><strong><a class="ico" title='Catagories Page' href="catagory.php"><img src="Includes/css/img/h-ico/library bookmarked.png" border="0" /> Catagories</a></strong></li><!-- DONT FORGET TO EDIT TOOLTIP! -->
<li><strong><a class="ico" title='Manufacturers Page' href="manufacturers.php"><img src="Includes/css/img/h-ico/applications.png" border="0" /> Manufacturers</a></strong></li><!-- DONT FORGET TO EDIT TOOLTIP! -->
<li><strong><a class="ico" title='News Page' href="news.php"><img src="Includes/css/img/h-ico/notebook.png" border="0" /> News</a></strong></li><!-- DONT FORGET TO EDIT TOOLTIP! -->
<li><strong><a class="ico" title='Customer Enquiries' href="enquiries.php"><img src="Includes/css/img/h-ico/unread mail.png" border="0" /> Enquiries</a></strong></li><!-- DONT FORGET TO EDIT TOOLTIP! -->
<li><strong><a class="ico" title='Edit Site Pages' href="pages.php"><img src="Includes/css/img/h-ico/new doc.png" border="0" /> Pages</a></strong></li><!-- DONT FORGET TO EDIT TOOLTIP! -->
<li><strong><a class="ico" title='Product User Comments' href="comments.php"><img src="Includes/css/img/h-ico/comments.png" border="0" /> Comments</a></strong></li><!-- DONT FORGET TO EDIT TOOLTIP! -->
<li><strong><a class="ico" title='Site Setup' href="setup.php"><img src="Includes/css/img/h-ico/advanced.png" border="0" /> Setup</a></strong></li><!-- DONT FORGET TO EDIT TOOLTIP! -->
<li><strong><a class="ico" title='About RCPanel' href="about.php"><img src="Includes/css/img/h-ico/info.png" border="0" /> About</a></strong></li><!-- DONT FORGET TO EDIT TOOLTIP! -->
						</ul>
				  </div>
	</div>
  </div>

</div>
  <!-- .inner-container --></div></div>

</body>

 

appreciate any help :)

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.