2013-05-16 9 views
0

頁面正在使用PHP GNU多精度(GMP)來確定每列中最終應該有多少行。雖然代碼正常工作,但我們希望將應用程序遷移到不支持PHP5-GMP模塊的新主機。也就是說,生成和填充可能不總是具有偶數個結果的兩列表格的最佳替代方案是什麼?此外,桌子的設計可能不是最好的,所以我願意選擇。替代使用PHP-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

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://www.brightmeup.info/article.php?a_id=2)。 –

回答

0

如果我讀得很好,你可以使用gmp_div_q只四捨五入?那麼,你應該檢查round()

唯一的情況下,round()不能涵蓋的是GMP_ROUND_ZERO,但你不使用它(你可以用簡單的if覆蓋它)。