如何将变量(数据库行)传递给while循环函数

时间:2013-10-25 16:58:26

标签: php mysql database

我使用一个简单的PHP脚本来显示页脚中的链接。这些链接和锚文本位于我的数据库中。使用我正在使用的代码显示链接和锚文本没有问题。以下是我的代码在运行时的外观示例。

使用PHP / MySQL如何从数据库中将值拉入我的网站并在while循环比较中?

我的代码摘录:

            <?php
                // Change the limit in db_connect.
                $link_counter = 0;
                while ($link_counter < $counter_query_result[1]['counter_value']; ){
                    echo $links_array[$link_counter];
                    $link_counter++;
                }
            ?>
          </ul>
        </div>
        <div id="footer_links_box">
          <ul>
            <?php
                while ($link_counter < $counter_query_result[2]['counter_value']; ){
                    echo $links_array[$link_counter];
                    $link_counter++;
                }
            ?>
          </ul>
        </div>
        <div id="footer_links_box">
          <ul>
            <?php
                while ($link_counter < $counter_query_result[3]['counter_value']; ){
                    echo $links_array[$link_counter];
                    $link_counter++;
                }
            ?>
          </ul>
        </div>
        <div id="footer_links_box">
          <ul>
            <?php
                while ($link_counter < $counter_query_result[4]['counter_value']; ){
                    echo $links_array[$link_counter];
                    $link_counter++;
                }
            ?>
          </ul>
        </div>
        <div id="footer_links_box">
          <ul>
            <?php
                while ($link_counter < $counter_query_result[5]['counter_value']; ){
                    echo $links_array[$link_counter];
                    $link_counter++;
                }
            ?>


                    echo $links_array[$link_counter];
                    $link_counter++;
                }
            ?>
          </ul>
        </div>
        <div id="footer_links_box">
          <ul>
            <?php
                while ($link_counter < echo $counter_query_result[1]['counter_value_2']; ){
                    echo $links_array[$link_counter];
                    $link_counter++;
                }
            ?>

3 个答案:

答案 0 :(得分:1)

你不需要回应它。它已经是一个用于比较的变量:

while ($link_counter < $counter_query_result[1]['counter_value_2'] ){
    echo $links_array[$link_counter];
    $link_counter++;
 }

这假设$counter_query_result[1]['counter_value_2']的值实际上是int

答案 1 :(得分:0)

假设我们有20个链接,我们想要5个块,每个块包含4个链接。

$links_array = array_chunk($links_array, 5);
foreach ( $links_array as $block_num => $block_links ) { ?>
<div id="footer_links_box">
    <ul>
    <?
    foreach ( $block_links as $link ) {
        echo $link;
    }
    ?>

     </ul>
</div>
<?  } ?>

答案 2 :(得分:-1)

回答我自己的问题。这是解决方案。你不能把数据库查询/结果放在while循环中:(这里的前6行代码是旧代码不起作用)

<?php
    while ($link_counter < $counter_query_result[3]['counter_value']; ){
        echo $links_array[$link_counter];
        $link_counter++;
    }
?>

相反,您需要将语句分配给变量并从循环内调用该变量。以下是完成的代码,实际上工作110%。我现在正在我已完成的网站上使用它。

以下代码是完成的代码并且有效。

            <?php
                // Start Database Variable For Footer Link Counter //
                $var1 = $counter_result[1]['counter_row_value'];
                $var2 = $counter_result[2]['counter_row_value'];
                $var3 = $counter_result[3]['counter_row_value'];
                $var4 = $counter_result[4]['counter_row_value'];
                $var5 = $counter_result[5]['counter_row_value'];
                // End Database Varibale For Footer Link Counter //
                $link_counter = 0;

                while ($link_counter < $var1 ){
                    echo $links_array[$link_counter];
                    $link_counter++;
                }
            ?>
          </ul>
        </div>
        <div id="footer_links_box">
          <ul>
            <?php
                while ($link_counter < $var2 ){
                    echo $links_array[$link_counter];
                    $link_counter++;
                }
            ?>
          </ul>
        </div>
        <div id="footer_links_box">
          <ul>
            <?php
                while ($link_counter < $var3 ){
                    echo $links_array[$link_counter];
                    $link_counter++;
                }
            ?>
          </ul>
        </div>
        <div id="footer_links_box">
          <ul>
            <?php
                while ($link_counter < $var4 ){
                    echo $links_array[$link_counter];
                    $link_counter++;
                }
            ?>
          </ul>
        </div>
        <div id="footer_links_box">
          <ul>
            <?php
                while ($link_counter < $var5 ){
                    echo $links_array[$link_counter];
                    $link_counter++;
                }
            ?>