使用mysql数组循环有限数量的html

时间:2015-05-01 20:06:15

标签: php mysql loops foreach while-loop

我无法使用html为有限数量的行循环mysql数据。我需要回显html中的初始div来显示不需要循环的初始html容器。之后,我想循环返回与其html块一起返回的前4行。我想出一个空白的页面。它没有显示带有mysql数据的4行。

    function functionName(){

        $DBvar = new mysqli($Serv,$use,$pass,$db);

        /* Checking Connection */
        if($DBvar->connect_errno) {
            printf("Connection Failed:  %s \n",$DBvar->connect_error);
            exit();
        }

        if($response = $DBvar->query("SELECT * FROM Table1 ORDER BY 'ColunmName' DESC LIMIT 0,4")) {

            echo "<div class=\"row\">
                    <div class=\"span12\">
                        <div class=\"recent-posts\"><br>";

            while($obj = $response->fetch_object()) {
                $id = $obj['id'];
                $clmn1= $obj['clmn1'];
                $clmn2= $obj['clmn2'];
                $clmn3= $obj['clmn3'];

                printf("<div class=\"span3 border-hover\" id=\"id%s\">
                            <article>
                            <h5><a rel=\"nofollow\"><strong>%s</strong></a></h5>
                            %s
                            </article>
                            <p>%s</p>
                        </div>", $id, $clmn1, $clmn2, $clmn3);
            }

            echo "
                </div>
                </div>
                </div>";
        }

        $response->close();
    }

1 个答案:

答案 0 :(得分:0)

我最终找到了以这种方式编写代码的解决方案。所以我在while语句之后不需要额外的变量。但我知道有一种更好的方法可以重写这个,这样我就可以继续从数据库中提取数据并动态生成另一行,后面还有4个项目。现在我不得不加倍代码2或3行。它应该比这更有效。这是一个很好的短期解决方案,但不是长期的,甚至不是可扩展的。感谢大家的帮助!

function FunctionName(){

        $DBConnect = new mysqli(SERVER,USER,PASSWORD,DATABASE);

        /* Checking Connection */
        if($DBConnect->connect_errno) {
            printf("Connection Failed:  %s \n",$DBConnect->connect_error);
            exit();
        }

        if($result = $DBConnect->query("SELECT * FROM TableName LIMIT 0,4")) {
                //Then I echoed the initial html to create the column row since I only need 1 row per 4 items to display.
                echo "<div class=\"row\">
                        <div class=\"span12\">
                            <div class=\"recent-posts\"><br>
                                <div class=\"row\">
                                    <div class=\"\">
                                        <ul class=\"slides\">
                                            <li>";

                                                while($obj = $result->fetch_object()) {
                                                            printf("<div class=\"span3 border-hover\" id=\"$var%s\">
                                                                        <article>
                                                                        <h5><a rel=\"nofollow\"><strong>%s</strong></a></h5>
                                                                        %s
                                                                        </article>
                                                                        <p>%s</p>
                                                                    </div>", $obj->$var, $obj->$var1, $obj->$var2, $obj->$var3);
                                        }
                echo "                      </li>
                                        </ul>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>";
            }