Try this ...
<?php
$totalCount = ceil(mysql_num_rows($result)/3)*3;
for($k = 0; $k < $totalCount; $k ++) {
if($k%3 == 0) { echo '<tr>'; }
if($row = mysql_fetch_array($result)) {
echo '<td style="width:280px;">'.$row[goods_name].'</td>';
}
else {
echo '<td style="width:280px;"></td>';
}
if($k%3 == 2) { echo '</tr>'; }
}
?>
至于要特别指定某栏、某列的值,可以使用 mysql_result ;
此外我会建议将 mysql_fetch_array 换成 mysql_fetch_asoc ,
如果阵列不需要数字键的话。
还有 .... 其实 Table 切版很麻烦,
可以考虑改用 div 配合 float 去排出列表,
套 php Code 会比较神清气爽 XD
※ 引述《mick90207 (阿公)》之铭言:
: 我想做个类似商品清单的显示页面
: 可以每列显示三个商品
: 想请问前辈们该如何撰写呢?
: 有爬到文说可以加个计数器 再利用mod 看看是否要在该循环中加<tr>
: 只是这样写下来
: if 判断是否加tr
: echo "<tr>";
: do loop
: <td width="280"><? echo $row[goods_name]; ?></td>
: i++
: while...
: <tr>
: do loop
: <td width="280"><? echo $row[price]; ?></td>
: i++
: while...
: 这样的话我一次只能把一栏的资料抓出来
: 我再写第二列价格的时候
: $row[]里面就会接续下去
: mysql有办法指定特别要某栏某列的值吗?
: 我现在的code 先把每栏直接*3看看前端接口用....
: <?php do{?>
: <tr>
: <td width="280"><? echo $row[goods_name]; ?></td>
: <td width="280"><? echo $row[goods_name]; ?></td>
: <td width="280"><? echo $row[goods_name]; ?></td>
: </tr>
: <tr>
: <td><? echo $row[price]; ?></td>
: <td><? echo $row[price]; ?></td>
: <td><? echo $row[price]; ?></td>
: </tr>
: <? }while($row=mysqli_fetch_array($result)); ?>
不过就是用table做table的事而已,用div+float做table
用DIV搭配float的话 是每个商品都为一个独立的div吗
试出来了~只是如果名称长短不一的话 每个DIV的大小也会不同 这样要如何排版呢/
要固定div宽度。所以说应该table做的事就用table就好。
float理解上超不自然的,inline-block还差不多一点。
作者:
danny8376 (钓到一只猴子@_@)
2014-05-21 17:20:00这里就是table该做的事+1
作者:
cokellen (cokellen)
2014-05-21 19:58:00这种资料列表,确实用table即可
作者:
alog (A肉哥)
2014-05-21 20:58:00table for datadiv 是一种排版用的区块元素,本身不该是用来显示密集的资料
如果要讨论 html element 我还是会投 li 而非 table
原因有两个,一个是套 Coding 很麻烦,一个是如果以后要改版, Code 部分可能得大幅重写。
然后的确要把元素设成 inline-block 。
解法千千万万种,原 PO 也可以不用理我的疑问,直接把上面的 PHP Code 拿去用,继续使用 Table :p
作者:
danny8376 (钓到一只猴子@_@)
2014-05-22 03:01:00会想塞table的资料本身就不该是会有排版需求的东西啊-3-
作者:
danny8376 (钓到一只猴子@_@)
2014-05-22 03:02:00再说li要弄成table状也不会好到哪
作者:
alog (A肉哥)
2014-05-22 04:31:00资料呈现应该是用table 排版才用div实作..
作者:
alog (A肉哥)
2014-05-22 04:32:00li是给单栏资料用的
作者:
alog (A肉哥)
2014-05-22 04:34:00原po应该是误把切版的意义了
作者:
alog (A肉哥)
2014-05-22 04:36:00而原原po问题应该只是卡在资料显示的问题 谈切版 似乎有点远
作者:
alog (A肉哥)
2014-05-22 04:37:00我们讲的是资料呈现应该用table tag 而不是说 架构面用table
作者:
alog (A肉哥)
2014-05-22 04:48:00不过 我觉得该用什么应该由发问者自己把ui画出来才知道用那种
等等,不会推文说的 table 都是 display 的属性吧 T_T"
那我真的是蠢毙了 Orz 但我还是反对 table 是因为 IE6
不过真心希望 IE6 应该和 XP 一起消失啊 Orz
作者:
danny8376 (钓到一只猴子@_@)
2014-05-22 07:13:00IE6? 那东西早没理会啦XD IE8还会稍微注意下www
长官是老人,老人用 XP , XP 绑 IE , IE 不更新 ..T_T
作者:
danny8376 (钓到一只猴子@_@)
2014-05-22 09:26:00那偷偷帮忙更新IE8 (X
说归说,其实满担心现在inline-block支援状况到底如何
不断更新的chrome当然没问题 破破碎碎的IE怎么办哩
所以我其实通常是用 span 配合 inline-block ,灾请会少一点。
以前帮他更新过 .... 他觉得 IE 6 比较好用,对了他还在用 Outlook Express ,常常信件都收到爆 .... (崩溃
请问 mysql_result要怎么指定某栏某列的值呢?
用大大给的程式码的话 一次只能把一项资料排成三栏如果有两项资料以上的话呢?我想排成这样
请问一下 为什么是<br /> 而不是<br>呢?
$row = mysqli_fetch_array($result);
你只要知道现在都是<br />就好,不用问为什么。
作者:
ez880 (被捅我也爽)
2014-05-29 20:28:00问个为什么都不可以喔 -.-在这个实例上看来 根本不是table该做的事情 还叫人用table揪竟是什么样的心态呢~~
作者:
danny8376 (钓到一只猴子@_@)
2014-05-29 23:23:00楼上能解释为何不是table? 纯资料排列就是table啊不然还麻烦举例何时才能用table
作者:
ez880 (被捅我也爽)
2014-05-29 23:35:00告诉我 他这样排版 怎么跟搜寻引擎说 我的第一列是什么?