如何在while循环期间访问以前的fetch_assoc数据?

时间:2017-06-16 20:43:52

标签: php mysql

我试图从当前数据集中的数据库select语句中获取上一行数据。

我目前的代码如下:

<?php
            $lib = $_GET["lib"];

            include "connect.php";

            $sql = "SELECT Image, text, link FROM library WHERE Type = '$lib'";
            $result = $conn->query($sql);

            $count = 1;
            if ($result->num_rows > 0) {
                // output data of each row
                while($row = $result->fetch_assoc()) {
                        if ($count <= 6) {
                            if ($count == 1) {
                                echo "<tr>";
                            }
                                    echo "<td align='center'>";
                                        echo "<a href='".$row["link"]."'><img src='".$row["Image"]."'/></a>";
                                    echo "</td>";
                                $count++;
                            if ($count == 7) {
                                echo "</tr>";
                            }
                        } else if ($count >= 7 && $count <= 12) {
                            if ($count == 7) {
                                echo "<tr>";
                            }   
                                    echo "<td align='center'>";
                                        echo"<a href='".$row["link"]."'><p>".$row["text"]."</p></a>";
                                    echo "</td>";
                                $count++;
                                if($count == 13){
                                    $count = 1;
                                }
                            if ($count == 1) {
                                echo "</tr>";
                            }

                        }                   
                }
                echo "</tr>";
            } else {
                echo "No Videos in the ".$lib." Section at this time!";
            }
            $conn->close();
        ?>

因此前6行将输出,然后输出第7-12行,但将使用前6行结果中的选定数据。

例如。$ row [&#34;变量&#34;] [ - 6个结果]。我知道这是一个这样做的方法,但我不记得处理执行select语句时从数据库返回的数组的方法。

我在考虑使用$ result-&gt; data_seek(0);但在这种情况下我不确定如何使用它。

1 个答案:

答案 0 :(得分:0)

我已经知道我已经过度复杂了。事实证明,以下代码可以满足我的需求。只需要在图像下包含相同的文本,而不是仅为文本添加新行。

            <?php
            $lib = $_GET["lib"];

            include "connect.php";

            $sql = "SELECT Image, text, link FROM library WHERE Type = '$lib'";
            $result = $conn->query($sql);

            $count = 1;
            if ($result->num_rows > 0) {
                // output data of each row
                while($row = $result->fetch_assoc()) {
                            if ($count == 1) {
                                echo "<tr>";
                            }
                                echo "<td align='center'>";
                                    echo "<a href='".$row["link"]."'><img src='".$row["Image"]."'/></a>";
                                    echo"<a href='".$row["link"]."'><p>".$row["text"]."</p></a>";
                                echo "</td>";
                            if ($count == 6) {
                                echo "</tr>";
                                $count = 0;
                            }
                            $count++;
                            echo $count;

                }
                echo "</tr>";
            } else {
                echo "No Videos in the ".$lib." Section at this time!";
            }
            $conn->close();
        ?>

感谢所有为我研究此事的人。