【问题标题】:Move to next colum if condition is true when create table with loop in Php如果在 PHP 中使用循环创建表时条件为真,则移至下一列
【发布时间】:2016-09-28 09:49:07
【问题描述】:

所以,我想做的是仅按每天最高总点击次数显示 20 件商品的每个类别 id 的总点击次数。

现在我正在使用硬代码,结果必须看起来像这样

所以,如果项目 id 和总点击次数已经填满了

20 列(用于项目 ID 和总点击次数)+ 2 用于标题所以意味着 22列

它必须移动到下一行。

因为我引用我的数据库,所以我使用循环来创建表,当我这样做时,我得到了这个结果......

结果将一直显示到左侧的末尾。出于报告目的,这很难阅读。所以我希望结果看起来像我上传的第一个图。

这就是我现在正在做的事情

  include "Con.php";
        //get the value from Get Method 
        $CatidValue = $_GET['CatIds'];
        //(The date format would looks like yyyy-mm-dd)
        $DateFrom = $_GET['DateFrom'];  
        $DateTo = $_GET['DateTo'];
        //select the CatID
        $SqlGet= "Select CatId from try where CatId = $CatidValue";
        $_SqlGet = mysqli_query($connection,$SqlGet);
        $TakeResultGet = mysqli_fetch_array($_SqlGet);
        $CatIdTittle = $TakeResultGet ['CatId'];

        echo"
            For Category Id : $CatIdTittle
            <br>

        ";

        //For Loop purpose and break the value
        $explodeValueFrom = explode("-",$DateFrom);
        $explodeValueTo = explode("-",$DateTo);
        $DateValueFrom = $explodeValueFrom[0].$explodeValueFrom[1].$explodeValueFrom[2];
        $DateValueTo = $explodeValueTo[0].$explodeValueTo[1].$explodeValueTo[2];    

        //Loop through the date
        for($Loop=$DateValueFrom; $Loop <= $DateValueTo; $Loop++){
            $YearLoop= substr($Loop, 0,4);
            $MonthLoop =substr($Loop, 4,2);
            $DayLoop = substr($Loop, 6,2);

            $DateTittleValue = $YearLoop."-".$MonthLoop."-".$DayLoop;
            $trValue = "<th class='tg-amwm' colspan='2'>$DateTittleValue</th>";


                echo"
                <table class='tg'>
                    <tr>
                        $trValue
                    </tr>
                ";
                echo"
                <table class='tg'>
                    <tr>
                        <td class='tg-yw4l'>Items Id</td>
                        <td class='tg-yw4l'>Total Clicks</td>
                    </tr>
                ";



            //to get the item id and total clicks
            $SqlSelect = "select `Item Id`,`Total Clicks`,Day from try where CatId = $CatidValue and Day = '$DateTittleValue' ORDER BY `try`.`Total Clicks`  DESC limit 20";
            $_SqlSelect = mysqli_query($connection,$SqlSelect);
            foreach ($_SqlSelect as $ResultSelect) {
                $Day = $ResultSelect['Day'];
                $ItemId = $ResultSelect['Item Id'];
                $TotalClicks = $ResultSelect['Total Clicks'];

                echo"       
                    <tr>
                        <td class='tg-yw4l'>$ItemId</td>
                        <td class='tg-yw4l'>$TotalClicks</td>
                    </tr>               
                ";
            }
        }           
    ?>

【问题讨论】:

  • 您需要发布更多与数据来自何处以及是否与数据库相关的代码。
  • @Fred-ii- 抱歉,我刚刚更新了我的问题以及代码和预期结果

标签: php html loops for-loop


【解决方案1】:

您不需要在循环中声明您的 trValueTitle。另外你需要在你的回声中连接它,试试这个:

    $trValueTittle ="1"."<th class='tg-amwm' colspan='2'>$DateTittleValue</th>" ; 
    echo"<table class='tg'>";
    for($loopForTr=1; $loopForTr<=3; $loopForTr++){
        echo"<tr>". $trValueTittle ."</tr>";
    }

【讨论】:

  • 我刚刚更新了我的问题,你的问题是对的,我已经完成了这个。但我想要与我的问题中的图片相同。参考那个
【解决方案2】:

我不知道你想用“1”做什么,但我认为这就是你想要做的:

echo "<table class='tg'>";
for($loopForTr=1; $loopForTr<=3; $loopForTr++){
    $trValueTittle ="<th class='tg-amwm' colspan='2'>$DateTittleValue</th>";
    echo"   
        <tr>
            $trValueTittle 
        </tr>";
}
echo "</table>";

【讨论】:

    【解决方案3】:
    $trValueTittle ="1"."<th class='tg-amwm' colspan='2'>$DateTittleValue</th>" ;
    
    echo"<table class='tg'>
           <thead>
              <tr>";
    
    for($loopForTr=1; $loopForTr<=3; $loopForTr++){
        echo $trValueTittle;
    }
    
         echo"</tr>
      </thead>
    </table>";
    

    @Mantello,很好的答案,但我认为最好将“tr”从循环中排除,因为通常你不想将你的表头(th)放在不同的行中。

    【讨论】:

    • 我的输出是我期待这个 2009-04-21 2009-04-22 项目 ID 总点击次数 项目 ID 总点击次数 121321 23 12224 12 1233 1 12312 6 您的代码将生成这个 2009-04-21项目 ID 总点击次数 121321 23 1233 1 2009-04-22 项目 ID 总点击次数 12224 12 12312 6
    • 对不起,我真的不明白你想要什么......我看过你发布的图片。正如我所说,不要将您的 tr 放在 for 循环中......如果您还没有这样做,请发布更多代码,否则我无法帮助您。 :(
    【解决方案4】:

    @Rax 你的代码不起作用。你会收到一个错误。您不能像在 echo 中那样输出变量。

    echo"<tr> '.$trValueTittle.' </tr>"; 
    

    会好的。但是也没有必要在 for 循环中定义你的变量。这样你就可以减慢你的脚本。

    【讨论】:

    • Rax 的回声很好。变量在双引号内。
    • 哦,对了,我的错。不知道我在写这个答案时研究了什么。
    • 应该从您的答案中删除关于它是错误的评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 2017-04-29
    • 2017-01-11
    • 1970-01-01
    相关资源
    最近更新 更多