gpt4 book ai didi

php - 我将如何对 mySQL 数据库的每 4 行回显不同的内容

转载 作者:太空宇宙 更新时间:2023-11-04 08:59:25 25 4
gpt4 key购买 nike

我是 PHP 和 mySQL 的新手,遇到了一些小问题,我正忙着尝试使用 echo 创建一个 4 列布局,目前我已经设法使用 mySQL 数据库实现了这一点,但最后一列需要额外的样式股利类。凭借我有限的知识,我想尝试使用我在论坛上找到的解决方案之一进行计数,但我认为我可能用错了。我的想法是回显数据库数组,然后进行计数并回显相同的内容 block ,但在 div 类中使用额外的 css 元素。非常感谢您的帮助。如果之前有人问过这个问题,请接受我的道歉,我只是承受着很大的压力来解决它。

查看下面的当前 PHP 代码

  <?php
$conn = mysqli_connect('localhost', 'root', 'password')
or die ( mysql_error());
$rs = mysqli_select_db($conn, 'database name' ) or die
( mysql_error());
$query = "SELECT * FROM database name";
$rs = mysqli_query( $conn, $query ) or die
( mysql_error());
while( $row = mysqli_fetch_array($rs, MYSQLI_BOTH))
{
$id = $row['id'];
$image = $row['image'];
$product = $row['product'];
$code = $row['code'];
$material = $row['material'];
$sizes = $row['sizes'];
echo "
<div class='percent-one-fourth'>

<div class='catalogue_content'>
<img src='bridal_gowns/$image.jpg' alt='Bridal Gown Catalogue - $product'>
<h3>$product</h3>
<div class='content'>
<p id='content'><span style='font-weight:bold; color:#969;'>Code:</span> $code<br>
<span style='font-weight:bold; color:#969;'>Material:</span> $material<br>
<span style='font-weight:bold; color:#969;'>Sizes Available:</span> $sizes
<br>
<br>
</p>
<a href='mailto:lizette@bridalalchemy.co.za; raymond@bridalalchemy.co.za?subject=Enquiry from Web / Product: $product, Code: $code;'><img src='enquire.jpg'></a>
</div>
</div>

</div>
";
}
$i = 0;
while( $row = mysqli_fetch_array($rs, MYSQLI_BOTH)){
if($i++ % 4 == 0) {
echo "
<div class='percent-one-fourth column-last'>

<div class='catalogue_content'>
<img src='bridal_gowns/$image.jpg' alt='Bridal Gown Catalogue - $product'>
<h3>$product</h3>
<div class='content'>
<p id='content'><span style='font-weight:bold; color:#969;'>Code:</span> $code<br>
<span style='font-weight:bold; color:#969;'>Material:</span> $material<br>
<span style='font-weight:bold; color:#969;'>Sizes Available:</span> $sizes
<br>
<br>
</p>
<a href='mailto:lizette@bridalalchemy.co.za; raymond@bridalalchemy.co.za?subject=Enquiry from Web / Product: $product, Code: $code;'><img src='enquire.jpg'></a>
</div>
</div>

</div>
";
}
}
mysqli_close($conn);
?>

最佳答案

由于您是 PHP 新手,因此了解您的代码无法正常工作的原因非常重要。那么,让我们跨过它并用简短的英语描述一下:

  1. 连接到 MySQL
  2. 运行一个包含多行作为响应的数据库查询
  3. 虽然还有更多的行要走..
    • 输出每一行
  4. 虽然还有更多的行要走.. [!] 始终为 false - 我们已经用完了它们
    • 每第 4 个结果输出一次[!] $image 之类的变量也未在此处定义

因此,由于 mysqli_fetch_array 的工作方式,您很有希望看到我们需要仅使用一次 来循环使用它。这对你也很好,因为它适合 DRY (don't repeat yourself) principle .

编辑:您还混合了 MySQL API; mysql_errormysqli_error 非常不同。

因此,相反,在我们的一个循环中,我们将检查我们是否在第 4 行,并做出不同的 react 。结果是这样的:

<?php
// 1. Connect to MySQL
// (this should be in a separate file and included so you don't repeat it)
$conn = mysqli_connect('localhost', 'root', 'password')
or die ( mysqli_error()); // <-- *mysqli*

$rs = mysqli_select_db($conn, 'database name' ) or die
( mysqli_error());

// 2. Run the query which has multiple rows as its response:
$query = "SELECT * FROM database name";
$rs = mysqli_query( $conn, $query ) or die
( mysqli_error());

// 3. Whilst there are more rows to go..
$i=0;

while( $row = mysqli_fetch_array($rs, MYSQLI_BOTH))
{

// Get easier references to various fields:
$id = $row['id'];
$image = $row['image'];
$product = $row['product'];
$code = $row['code'];
$material = $row['material'];
$sizes = $row['sizes'];

// Start outputting this row:
echo "<div class='percent-one-fourth";

// The important part! We check here in this single loop:
if($i++ % 4 == 0){
// Every 4th row - output that extra class now!
echo " column-last";
}

// Output everything else:
echo "'>

<div class='catalogue_content'>
<img src='bridal_gowns/$image.jpg' alt='Bridal Gown Catalogue - $product'>
<h3>$product</h3>
<div class='content'>
<p id='content'><span style='font-weight:bold; color:#969;'>Code:</span> $code<br>
<span style='font-weight:bold; color:#969;'>Material:</span> $material<br>
<span style='font-weight:bold; color:#969;'>Sizes Available:</span> $sizes
<br>
<br>
</p>
<a href='mailto:lizette@bridalalchemy.co.za; raymond@bridalalchemy.co.za?subject=Enquiry from Web / Product: $product, Code: $code;'><img src='enquire.jpg'></a>
</div>
</div>

</div>
";
}

// Tidy up:
mysqli_close($conn);
?>

关于php - 我将如何对 mySQL 数据库的每 4 行回显不同的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42876014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com