我有一个PHP while循环,它从SQL数据库中提取并在包含两列的表中显示内容。
// Check Connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Select Data Table
$result = mysqli_query($con,"SELECT * FROM Recommendations") or die(mysqli_error);
// Split Data
$mid = ceil(mysqli_num_rows($result)/2);
// Display Content
while ($rows = mysqli_fetch_array($result)) {
$Name = $rows['Name'];
$Author = $rows['Author'];
$Cover = $rows['Link to Cover'];
$Link = $rows['Link to Profile'];
echo "<table><tr><td>
<a href='" . $Link . "' >".$Name."</a>
<br />".
$Author.
"<br />
<a href='" . $Link . "' ><img src='" . $Cover . "' /></a>
</td>
<td>
<a href='" . $Link . "' >".$Name."</a>
<br />".
$Author.
"<br />
<a href='" . $Link . "' ><img src='" . $Cover . "' /></a>
</td></tr></table>";
}
?>
我希望能够以两列的形式并排显示循环结果。
ex. 1 2
3 4
5 6
我尝试使用伪类在不同的表列中仅显示偶数和奇数结果,但老实说不知道如何执行此操作。我是PHP的新手,所以如果结果非常明显,我很抱歉。提前谢谢!
答案 0 :(得分:1)
我将向您展示一个简单的选项来分割偶数和奇数。
foreach($numbers as $n) {
($n % 2 == 0) ? array_push($e, $n): array_push($o, $n);
}
以上是short-hand ternary operator(?:
)
上述功能将检查数字是偶数还是奇数。它将偶数/奇数值存储在它们自己的单独数组中,在这种情况下,偶数为 $e
,奇数为 $o
。
如果你想看看它是如何运作的,Check this Example Out.
使用上面的例子,你会做这样的事情( AS PSEUDO CODE )
WHILE(ROW = MYSQL.FETCH(DATA)) {
MYDATA[] = ROW;
}
// now we do presentation
FOREACH(MYDATA AS ITEM) {
IF(ITEM.NUMBER % 2 == 0) {
PRINT EVEN.INFORMATION;
} ELSE {
PRINT ODD.INFORMATION;
}
}
答案 1 :(得分:1)
没有CSS:利用模数函数%
,它返回除法的余数。奇数#s返回1,甚至返回0.因此对于奇数开始一行,偶数数字结束一行。
echo "<table>";
$i = 1;
// Display Content
while ($rows = mysqli_fetch_array($result)) {
$Name = $rows['Name'];
$Author = $rows['Author'];
$Cover = $rows['Link to Cover'];
$Link = $rows['Link to Profile'];
if ($i % 2 == 1) {
echo "<tr>";
}
echo "<td>
<a href='" . $Link . "' >$Name</a>
<br />
$Author
<br />
<a href='" . $Link . "' ><img src='" . $Cover . "' /></a>
</td>
<td>
<a href='" . $Link . "' >$Name</a>
<br />
$Author
<br />
<a href='" . $Link . "' ><img src='" . $Cover . "' /></a>
</td>";
if ($i % 2 == 0) {
echo "</tr>";
$i ++;
}
}