【问题标题】:Fetch data into tabular format将数据提取为表格格式
【发布时间】:2016-07-18 05:32:54
【问题描述】:

我正在尝试以表格格式从数据库中获取数据。我将计数变量作为行数和 5 列。当我执行此查询时,所有结果都在多行和单列中获取。 这是我的代码:

<?php
include("connect.php");
$all_product = mysqli_query($connect, "SELECT * FROM product WHERE user_id='$fetch_user_id'");
echo '<table style="background-color:white; margin-left:50px; margin-right:50px;">';
$count = mysqli_num_rows($all_product);
$count = ($count / 5) + 1;

for ($i = 0; $i < $count; $i++) {
    echo "<tr[$i]>";

    for ($m = 0; $m < 5; $m++) {
        echo "<td[$m]>";

        while ($all = mysqli_fetch_array($all_product)) {
            echo '<img src="' . $all['image'] . '" width="150px" height="150px" />
                <div class="search_details">
                <figcaption>' . $all['name'] . '</figcaption>
                <figcaption>by ' . $all['brand'] . '</figcaption><figcaption>&#8360;' . $all['price'] . '</figcaption>
                <figcaption>Save: &#8360;' . $local_price . ', (' . $all['discount'] . '%)</figcaption><figcaption>In stock:' . $all['stock'] . '</figcaption></div>';
        }

        echo "</td[$m]>";
    }

    echo "</tr[$i]>";
}

echo "</table>";
?>

有什么帮助吗?我哪里错了? 提前谢谢你

【问题讨论】:

  • 对我在一段时间内见过的最可怕的格式化代码投反对票
  • 警告:当使用mysqli 时,您应该使用parameterized queriesbind_param 将用户数据添加到您的查询中。 不要使用手动转义和字符串插值或连接来完成此操作,因为如果您忘记正确转义某些内容,您将创建严重的SQL injection bugs
  • 我喜欢这个标题。谁会想到这一点。
  • @e4c5 现在可以了吗??
  • 人们在这里很难缩进。这是因为大多数人没有太多时间来阅读您的问题并发现问题,而且还因为混乱的代码通常是混乱过程的标志。让事情保持整洁,有条理,错误变得更加明显。缩进代码的功能部分,there are many examples of how to achieve this,并保持一致。

标签: php html mysql database


【解决方案1】:

我希望这会有所帮助:

 <?php
    $all_product = mysqli_query($connect, "SELECT * FROM product WHERE user_id='$fetch_user_id'");
    $i= 0;
    $m=5;
    echo '<table width="100%" margin-left="30px" style="background-color:white;">';
    while ($all = mysqli_fetch_array($all_product)) {
    if($i%5==0) {
    echo "<tr>";
                }
    echo '<td style="width:20%">';
    echo '<img src="'.$all['image'].'" width="150px" height="150px" />
    <div class="search_details">
    <figcaption>'.$all['name'].'</figcaption>
    <figcaption>by '.$all['brand'].'</figcaption><figcaption>&#8360;'.$all['price'].'</figcaption>
    <figcaption>Save: &#8360;'.$local_price.', ('.$all['discount'].'%)</figcaption><figcaption>In stock: '.$all['stock'] .'</figcaption></div>';
    echo "</td>";
    if($i%$m==$m - 1){
    echo "</tr>";
                 }
    $i++;
                 }
    echo "</table>";
    ?>

【讨论】:

  • 您的回答与我的回答有何不同?
  • @Philipp 是的,逻辑是一样的,真​​是巧合,但是您已经多次重新定义了 php 标签,这是不必要的。
猜你喜欢
  • 2018-09-27
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
  • 1970-01-01
  • 2022-10-17
  • 2020-09-09
  • 1970-01-01
  • 2021-11-08
相关资源
最近更新 更多