2010年4月14日 星期三

使用php在mysql移動記錄指標的方法

習慣用vb的人,都知道移動記錄指標,可以用movefirst,movenext,movelast等指令,在php中使用mysql如何達到同樣效果。

可以用data_seek來做:
$result->data_seek($row_number)跳到$row_number這筆資料記錄
<?php
$s1="(select maSeq,percent as sWeight from scription where dSeq=".$ars['seq'].") a";
$q="select a.*,b.price,b.name from ".$s1." left outer join material b on a.maSeq = b.seq";
$rs1 = $mysqli->query($q) or die($mysqli->error);
$ars1 = $rs1->fetch_array();

$maPrice=0;

//以下迴圈,會使rs1資料集,一直讀到最後一筆
do {
if (!$ars1) break;
$ra=($ars['totWeight']/($ars['loss']/100))/$ars['tWeight'];
$maPrice+=$ars1['sWeight']*$ra*$ars1['price'];
} while ($ars1 = $rs1->fetch_array());

//以下做法會使rs1記錄指標回到第一筆(movefirst),重新再從第一筆讀起
$rs1->data_seek(0);
$ars1 = $rs1->fetch_array(); //相當於movenext
do {

if (!$ars1) break;?>
<tr <?php
$co = $cnt % 2;
if ($co== 0) echo "bgcolor=#E6F2FF";
else echo "bgcolor=#DEE9EB";?>>
<td height="16" bgcolor="#D0DFDB" class="content-xs1"><?php echo $ars1['name']?></td>
<td bgcolor="#D0DFDB" class="content-xs1"><?php echo round($ars1['sWeight']*$ra,2);?></td>
<td bgcolor="#D0DFDB" class="content-xs1"><?php echo $ars1['price'];?></td>
<td bgcolor="#D0DFDB" class="content-xs1"><?php echo round($ars1['sWeight']*$ra*$ars1['price'],2);?></td>
</tr>
<?php } while ($ars1 = $rs1->fetch_array())?>

  © Blogger templates Psi by Ourblogtemplates.com 2008

Back to TOP