您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> php >> 正文

菜鸟学PHP之Smarty入门

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-2-2 我要参与讨论

  lt;td width="25"> </td>
  <td width="164"><{$forum[sec1].topic[sec2].topic_name}></td>
  </tr>
  <{/section}>
  <{/section}>
  </table>
  </body>
  </html>
  
  执行的结果就像笔者举的例子一样。
  
  因此呢,在程序中我们只要想办法把所要重复值一层一层的塞到数组中,再利用 <{第一层数组[循环1].第二层数组[循环2].第三层数组[循环3]. ... .数组索引}> 这样的方式来显示每一个巢状循环中的值。至于用什么方法呢?下一节使用数据库时我们再提。
  
  转换数据库中的资料
  
  上面提到如何显示巢状循环,而实际上应用时我们的资料可能是从数据库中抓取出来的,所以我们就得想办法把数据库的资料变成上述的多重数组的形式。这里笔者用一个 DB 类别来抓取数据库中的资料,您可以自行用您喜欢的方法。
  
  我们只修改 PHP 程序,模版还是上面那个 (这就是模版引擎的好处~),其中 $db 这个对象假设已经在 main.php 中建立好了,而且抓出来的资料就是上面的例子。
  
  test3.php:
  
  <?php
  require "main.php";
  // 先建立第一层数组
  $category = array();
  $db->setSQL($SQL1, 'CATEGORY');
  if (!$db->query('CATEGORY')) die($db->error());
  // 抓取第一层循环的资料
  while ($item_category = $db->fetchAssoc('CATEGORY'))
  {
  // 建立第二层数组
  $topic = array();
  $db->setSQL(sprintf($SQL2, $item_category['category_id']), 'TOPIC');
  if (!$db->query('TOPIC')) die($db->error());
  // 抓取第二层循环的资料
  while ($item_topic = $db->fetchAssoc('TOPIC'))
  {
  // 把抓取的数据推入第二层数组中
  array_push($topic, $item_topic);
  }
  // 把第二层数组指定为第一层数组所抓取的数据中的一个成员
  $item_category['topic'] = $topic;
  // 把第一层数据推入第一层数组中
  array_push($category, $item_category);
  }
  $tpl->assign("forum", $category);
  $tpl->display("test3.htm");
  ?>
  
  在数据库抓取一笔资料后,我们得到的是一个包含该笔数据的数组。透过 while 叙述及 array_push 函式,我们将数据库中的资料一笔一笔塞到数组里。如果您只用到单层循环,就把第二层循环 (红色的部份) 去掉即可。
  
  决定内

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

在google里搜索更多菜鸟学PHP之Smarty入门

Google
Web www.51ec.org
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
我来说两句 对此文章发表了评论
  昵 称: *必填    ·注册用户·
  评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
评 论
内 容

 
评论列表 (最新 评论仅限网友观点!)

供求信息




| 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明