从mysql mediumtext字段中提取一部分文本,用php制作turn.js书页

时间:2013-10-02 11:03:27

标签: php jquery mysql joomla

我正在使用turn.js和custome php代码来加载特定类别的joomla文章来制作一本翻书......它的工作正常,直到我有一篇文章为一页。我添加/编辑文章,然后保存,然后在书页上查看...这是一项繁琐的任务...现在假设我在joomla文章中有一本书的所有内容,我想动态加载一部分它作为一个页面来制作书页等等使页面直到文章的结尾...这似乎可行,如果我只有文本修复没有行。但问题是内容可以有图像和标题......所以我如何根据内容动态改变要为单个页面提取的文章部分,以避免书页溢出...

这是本书的工作代码,我在一页上有一篇文章......

<?php  
//get total pages code from uncategorized (default) category. (id=2)
//state 1 means published -2 for trashed         
$qry="SELECT count(*) FROM `sdad_content` WHERE `catid`= '2' and `state` ='1' ";
  $get_db->setQuery($qry);
  $total_pages=$get_db->loadResult();

  if($total_pages){
      $qry="SELECT `id` FROM `sdad_content` WHERE `catid`= '2' AND `state`='1' ORDER BY `id`";
      //echo "<< $qry >>";
      $get_db->setQuery($qry);$get_db->query();
      $total=$get_db->getNumRows();
        if ($total >= 1 ) { //execute this only if we have some results
            $ids = $get_db->loadAssocList();
        }        
  }

//echo $total_pages;          

 for($i=0; $i<$total_pages; $i++){

      $qry="SELECT `introtext` FROM `sdad_content` WHERE `catid`= '2' AND `id`= '".$ids[$i]['id']."'";
      $get_db->setQuery($qry);
      $cover = $get_db->loadResult();
        if($i%2==0){
            $class='even';
            $pnoclass="pnoright";
          }else{
            $class='odd';
            $pnoclass="pnoleft";
          }
          echo '<div class="text '.$class.' "> <div class="page"> '.$cover; 
            echo '<div class="'.$pnoclass.' ">  </div>';
         echo '</div> </div>';

      }


    //code for back cover

     //adjusting the last odd page if ends at odd insert a page to make it even
      if($total_pages%2!=0){
          echo '<div class="text odd "> <div class="page">'; 
            echo '<div class="pnoleft"></div>';
          echo '</div> </div>'; 
      }  

      echo '<div class="text even "> <div class="page"> '.$covers[1]["introtext"]; 
            echo '<div class="pnoright"></div>';
         echo '</div> </div>';   
      echo '<div class="cover"> '.$covers[3]['introtext'].' </div>';
?>

1 个答案:

答案 0 :(得分:0)

我强烈建议你简化代码,这么多mysql查询什么都没有...

我的提议(以同样的方式工作):

<?php
$qry="SELECT `introtext` FROM `sdad_content` WHERE `catid`= '2' AND `state`='1' ORDER BY `id`";
$get_db->setQuery($qry);
$results = $get_db->loadObjectList();
if (count($results)){
    foreach($results as $key => $item){
        if($key%2==0){
            $class='even';
            $pnoclass="pnoright";
        } else {
            $class='odd';
            $pnoclass="pnoleft";
        }
        echo '<div class="text '.$class.' "> <div class="page"> '.$cover; 
        echo '<div class="'.$pnoclass.' ">  </div>';
        echo '</div> </div>';
    }
}
?>

少了代码,只有1个查询(以N为主题)并且结果相同:)