Re: [请益] 从mysql抓资料后多栏显示

楼主: cleanwind (C.Y.)   2014-05-21 05:06:43
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)); ?>
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-05-21 10:07:00
不过就是用table做table的事而已,用div+float做table
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-05-21 10:08:00
的事才真的是不合理。而且跟无障碍设计违背。
作者: mick90207 (阿公)   2014-05-21 11:00:00
谢谢!!
作者: mick90207 (阿公)   2014-05-21 11:53:00
用DIV搭配float的话 是每个商品都为一个独立的div吗
作者: mick90207 (阿公)   2014-05-21 12:47:00
试出来了~只是如果名称长短不一的话 每个DIV的大小也会不同 这样要如何排版呢/
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-05-21 14:26:00
要固定div宽度。所以说应该table做的事就用table就好。
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-05-21 14:27:00
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:00
table for datadiv 是一种排版用的区块元素,本身不该是用来显示密集的资料
楼主: cleanwind (C.Y.)   2014-05-22 00:30:00
如果要讨论 html element 我还是会投 li 而非 table
楼主: cleanwind (C.Y.)   2014-05-22 00:31:00
原因有两个,一个是套 Coding 很麻烦,一个是如果以后要改版, Code 部分可能得大幅重写。
楼主: cleanwind (C.Y.)   2014-05-22 00:34:00
然后的确要把元素设成 inline-block 。
楼主: cleanwind (C.Y.)   2014-05-22 00:36:00
解法千千万万种,原 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:00
li是给单栏资料用的
作者: 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画出来才知道用那种
楼主: cleanwind (C.Y.)   2014-05-22 06:41:00
等等,不会推文说的 table 都是 display 的属性吧 T_T"
楼主: cleanwind (C.Y.)   2014-05-22 06:42:00
那我真的是蠢毙了 Orz 但我还是反对 table 是因为 IE6
楼主: cleanwind (C.Y.)   2014-05-22 06:58:00
不过真心希望 IE6 应该和 XP 一起消失啊 Orz
作者: danny8376 (钓到一只猴子@_@)   2014-05-22 07:13:00
IE6? 那东西早没理会啦XD IE8还会稍微注意下www
楼主: cleanwind (C.Y.)   2014-05-22 08:29:00
长官是老人,老人用 XP , XP 绑 IE , IE 不更新 ..T_T
作者: danny8376 (钓到一只猴子@_@)   2014-05-22 09:26:00
那偷偷帮忙更新IE8 (X
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-05-22 12:57:00
说归说,其实满担心现在inline-block支援状况到底如何
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-05-22 12:58:00
不断更新的chrome当然没问题 破破碎碎的IE怎么办哩
楼主: cleanwind (C.Y.)   2014-05-22 14:59:00
所以我其实通常是用 span 配合 inline-block ,灾请会少一点。
楼主: cleanwind (C.Y.)   2014-05-22 15:00:00
以前帮他更新过 .... 他觉得 IE 6 比较好用,对了他还在用 Outlook Express ,常常信件都收到爆 .... (崩溃
作者: mick90207 (阿公)   2014-05-22 17:35:00
请问 mysql_result要怎么指定某栏某列的值呢?
作者: mick90207 (阿公)   2014-05-22 17:36:00
用大大给的程式码的话 一次只能把一项资料排成三栏如果有两项资料以上的话呢?我想排成这样
作者: mick90207 (阿公)   2014-05-22 17:37:00
商品1 商品2 商品3价格 价格 价格
作者: mick90207 (阿公)   2014-05-22 17:38:00
日期 日期 日期
作者: mick90207 (阿公)   2014-05-23 11:01:00
谢谢 待会来试试
作者: mick90207 (阿公)   2014-05-23 11:02:00
说来真惭愧 楼上在讨论什么看不懂 Orz
作者: mick90207 (阿公)   2014-05-24 15:53:00
请问一下 为什么是<br /> 而不是<br>呢?
作者: mick90207 (阿公)   2014-05-24 17:45:00
然后为什么商品中的第一项会显示不出来呢?
作者: mick90207 (阿公)   2014-05-24 17:49:00
$row = mysqli_fetch_array($result);
作者: mick90207 (阿公)   2014-05-24 17:50:00
是这里把第一笔资料提取掉了吗?该如何解决呢?
作者: mick90207 (阿公)   2014-05-24 17:53:00
找到解法了 谢谢!
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-05-26 09:53:00
你只要知道现在都是<br />就好,不用问为什么。
作者: mick90207 (阿公)   2014-05-27 11:38:00
喔......好
作者: 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
告诉我 他这样排版 怎么跟搜寻引擎说 我的第一列是什么?

Links booklink

Contact Us: admin [ a t ] ucptt.com