【问题标题】:PHP show next results in new row in html tablePHP 在 html 表的新行中显示下一个结果
【发布时间】:2013-07-12 02:35:12
【问题描述】:

我有一个用于展示我的产品的 html 表格,并且我有以下代码:

<?php
$result = mysqli_query($con,"SELECT * FROM products");

while($row = mysqli_fetch_array($result))
  {
  echo '<td>
 <!--START OF PRODUCT-->    
        <div>
        <h3>'.$row['productname'] . '</h3><img src="'.$row['thumb']. '" width="100%">

              <div>
            <div class="panel">
                    <h5>From £' . $row['price']. '</h5>
                    <div class="row">
                    <div class="large-12 columns">
                    <p>'. $row['shortdesc']. '</p>

                     <div class="row">
                     <div class="large-12 columns">
                     </div>
                     <form name="sign" action="http://www.shapeways.com/cart/addMultiple" method="GET" class="custom">
        <input type="hidden" name="model_id[]" value="'. $row['id']. '">
<label for="customDropdown1">Material/Colour</label>
        <select name="material_id[]" id="customDropdown1" class="medium">'.$row['materials']. '</select>
      <div class="row">
                     <div class="large-6 columns">
                     <a href="#'. $row['id']. '" class="button secondary">Information</a>
                     </div>
        <div class="row">
                     <div class="large-6 columns">
        <input type="submit" class="button" name="submit" id="add_to_cart" alt="add to cart" value="Buy Now">

        </form>

                </div>
            </div>
        </div>
</div>        
</div>
</div>
 </div>
 </div>
</div>
    </td>
';

  }



mysqli_close($con);
?> 

我希望它显示数据库中的 3 行,然后当它选择下 3 行以使其位于 html 表的下一行时。并重复此操作。

我希望这很清楚,一些帮助会很好。

第一个答案的代码:

<table width="100%" border="0" cellspacing="0" cellpadding="0">


       <?php
$result = mysqli_query($con,"SELECT * FROM products");



      echo "<tr>";
$start = 0;
while($row = mysqli_fetch_array($result)){

    $cell = '<td>
 <!--START OF PRODUCT-->    
        <div>
        <h3>'.$row['productname'] . '</h3><img src="'.$row['thumb']. '" width="100%">

              <div>
            <div class="panel">
                    <h5>From £' . $row['price']. '</h5>
                    <div class="row">
                    <div class="large-12 columns">
                    <p>'. $row['shortdesc']. '</p>

                     <div class="row">
                     <div class="large-12 columns">
                     </div>
                     <form name="sign" action="http://www.shapeways.com/cart/addMultiple" method="GET" class="custom">
        <input type="hidden" name="model_id[]" value="'. $row['id']. '">
<label for="customDropdown1">Material/Colour</label>
        <select name="material_id[]" id="customDropdown1" class="medium">'.$row['materials']. '</select>
      <div class="row">
                     <div class="large-6 columns">
                     <a href="#'. $row['id']. '" class="button secondary">Information</a>
                     </div>
        <div class="row">
                     <div class="large-6 columns">
        <input type="submit" class="button" name="submit" id="add_to_cart" alt="add to cart" value="Buy Now">

        </form>

                </div>
            </div>
        </div>
</div>        
</div>
</div>
 </div>
 </div>
</div>
    </td>';

    if($counter%3 == 0 && $start == 1){
        echo "</tr><tr>", $cell;
    }
    else{
        echo $cell;
    }
    $started = 1;
    $counter++;
}
echo "</tr>";





mysqli_close($con);
?> 

</table>

【问题讨论】:

  • 所以你问如何用tr 为你的桌子包装你的tds?
  • 不,我希望它在使用 3 个 td 后用 tr 标签包装 td
  • 这就是我问的。我认为这是暗示我们将包装 3 tds。

标签: php html mysql database html-table


【解决方案1】:

以下代码应该可以满足您的需求(如果我理解正确的话)...只需将 $cell 的内容替换为您在 echo 中的上述代码即可

$counter = 1;

echo "<tr>";
$started = 0;
while($row = mysqli_fetch_array($yourArray)){

    $cell = "Put the code you were echoing above in here";

    if($counter%3 == 0 && $started == 1){
        echo $cell, "</tr><tr>";
    }
    else{
        echo $cell;
    }
    $started = 1;
    $counter++;
}
echo "</tr>";

【讨论】:

  • 您好,我试过了,但没有成功,我还必须将 $cell 中的 "" 更改为 '',以便 Dreamweaver 停止告诉我这是错误的。我已将代码添加到我的问题中,以防万一我犯了错误。
  • 在代码中您输入了if($counter%3 == 0 &amp;&amp; $start == 1){ 而不是if($counter%3 == 0 &amp;&amp; $started == 1){。我的错,我编辑了它!
  • 您还需要将$start = 0声明更改为$started = 0
  • 最后,你需要将echo "&lt;/tr&gt;&lt;tr&gt;", $cell;翻转为echo $cell, "&lt;/tr&gt;&lt;tr&gt;";
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
  • 2017-03-14
  • 1970-01-01
  • 2011-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多