替代使用PHP-GMP填充两个列表

时间:2013-05-16 14:44:57

标签: php

页面正在使用PHP GNU Multiple Precision(GMP)来确定每列中应该有多少行。虽然代码有效,但我们希望将应用程序迁移到不支持PHP5-GMP模块的新主机。也就是说,生成和填充可能并不总是具有偶数结果的两列表的最佳替代方法是什么?表格设计可能不是最好的,所以我愿意接受替代方案。

以下从here获取的代码让我们接近但由于它使用了mysql_fetch_array,因此它会放置以下项目:

a   b
c   d

而不是

a   c
b   d

有没有办法在第一个例子中显示它?

较新的代码:

<head>
<style>
.container { width: 400px; float: left; }
.container .item { width: 50%; float: left; height: someFixedHeight; }
</style>
</head>
<?php
mysql_select_db("database",$db);
$cat= $_GET["cat"];
echo '<div class="container">';
$q = mysql_query("SELECT * FROM name WHERE Field4 = '$cat'",$db);
while ($res = mysql_fetch_array($q)){
    echo '<div class="item">' . $res['Field1'] . '</div>';
}
echo '</div>';
?>

原始代码:

<div id="bit-list" align="center" >
<table class="list" width="600" border="0" align="center">
<tr>

<td width="300" height="72" valign="top" border="1">
<div align="left">
<?php
$result = mysql_query("SELECT * FROM name WHERE field4 = '$cat' ",$db);
$myrow3 = mysql_fetch_row($result);
$num_rows = mysql_num_rows($result);
$d3 = gmp_div_q("$num_rows", "2", GMP_ROUND_PLUSINF);
$i = 1;
$result8 = mysql_query("SELECT * FROM name WHERE field4 = '$cat' ",$db);
while ($myrow3 = mysql_fetch_row($result8))
    {
    if ($i <= gmp_strval($d3))
    {
        echo "<p>";
        echo '<a href="detail.php?';
        echo 'page=';
        echo "$myrow3[2]";
        echo '&';
        echo 'pnum=';
        echo "$myrow3[6]";
        echo '">';
        echo "$myrow3[1]";
        echo "</p>";
        $i = $i + 1;
    }
        else
    {
    }
    }
?>
</div></td>

<td width="300" valign="top" border="1">
<div align="left">
<?php
$result = mysql_query("SELECT * FROM name WHERE field4 = '$cat' ",$db);
$myrow3 = mysql_fetch_row($result);
$num_rows = mysql_num_rows($result);
$d4 = gmp_div_q("$num_rows", "2", GMP_ROUND_MINUSINF);
$d3 = gmp_div_q("$num_rows", "2", GMP_ROUND_PLUSINF);
$j = 1;
$result18 = mysql_query("SELECT * FROM name WHERE field4 = '$cat' ",$db);
while ($myrow3 = mysql_fetch_row($result18))
{
if ($j <= gmp_strval($d3))
{
$j=$j+1;
}
else
{
echo "<p>";
echo '<a href="detail.php?';
echo 'page=';
echo "$myrow3[2]";
echo '&';
echo 'pnum=';
echo "$myrow3[6]";
echo '">';
echo "$myrow3[1]";
echo "</p>";
$j = $j + 1;
}
}
?>

</div>
</td>
</tr>
</table>
</div>

1 个答案:

答案 0 :(得分:0)

如果我读得不错,您只能使用gmp_div_q进行四舍五入?然后,您应该检查round()

round()无法涵盖的唯一案例是GMP_ROUND_ZERO,但你没有使用它(你可以用一个简单的if覆盖它。)