簡體   English   中英

如何在PHP中巧妙地停止“ while循環”?

[英]How to cleverly stop “while loop” in PHP?

我在創建代碼時遇到麻煩,該代碼回顯了對應於mysql數據庫行的一堆東西。 它需要繼續創建內容,直到使用完所有行,然后停止。

當前存在的行數為5

但是由於某種原因,php文件會導致瀏覽器繼續加載(永遠不會結束)。 任何幫助,將不勝感激! 謝謝!

問題不在此PHP文件中,而在我的HTML代碼中,謝謝大家的幫助

<?php 

mysql_connect ("localhost", "root", "") or die ("We couldn't connect!");
mysql_select_db ("dr");
mysql_query ("SELECT * FROM songs");
$result = mysql_query ("SELECT * FROM songs");

while ($row=mysql_fetch_array($result)) {

    $name = $row ['songname'];
    $genres = $row ['songgenres'];
    $mediafire = $row ['mediafirelink'];
    $dropbox = $row ['dropboxlink'];
    $source = $row ['audiosource'];

    echo "
    <div class='playing'>
            <!-- ======== Song Name ======== -->
                <li class='songnameli' id='$source'>
                    <span class='info'>$name</span>
                    <audio>
                        <source src='music/singles/$source.mp3'>
                        <source src='music/singles/$source.ogg'>
                    </audio>
                </li>

            <!-- ======== Playlist ======== -->
                <li class='playlistli'>
                    <img src='icons/addtoplaylist.png' title='Add tot the playlist!' />
                </li>

            <!-- ======== Genres ======== -->
                <li class='genresli'>
                    <img src='icons/genres.png' title='Related genres' />
                    <span class='addedtext genres'>$genres</span>
                </li>

            <!-- ======== Social Media links ======== -->
                <li>
                    <span>
                    <img src='icons/share.png' alt='Share this with your friends!' title='Share this!'>
                    <!-- /// facebook /// -->
                        <a href='http://www.facebook.com/sharer.php?u=http://www.declassified-recordings.com'
                           class='addedtext nlink'
                           target='blank_'
                           onclick='popup (this.href, 800, 500); return false'>Facebook
                        </a>

                    <span>/</span>

                    <!-- /// Twitter /// -->
                        <a href='http://twitter.com/share?
                            text=Thank%20you%20For%20Sharing!%20It%20means%20the%20world%20to%20us!%40Declassifi3d%20
                            &url=http://www.declassified-recordings.com'
                           class='twitterlink nlink'
                           target='blank_'
                           onclick='popup (this.href, 800, 500); return false'>Twitter</a>


                    </span>

                </li>

            <!-- ======== Download links ======== -->

                <li>
                    <img src='icons/download.png' title='Download!'  />
                    <span>
                        <!-- /// Mediafire /// -->
                            <a href='$mediafire'
                               class='addedtext nlink'
                               target='_blank'>Mediafire</a>

                        <span class='genres'>/</span>

                        <!-- /// Dropbox /// -->
                            <a href='$mediafire'
                               class='twitterlink nlink'
                               target='_blank'>Dropbox</a>


                    </span>
                </li>
    </div>";
}
mysql_close ();
?>

首先,為什么您要像下面這樣將這兩個mysql_query命令彼此相對:

mysql_query ("SELECT * FROM songs");
$result = mysql_query ("SELECT * FROM songs");

只要擺脫掉第一個,就可以將實際的SQL設置成這樣的變量:

$query_sql = "SELECT * FROM songs";
$result = mysql_query ($query_sql);

但是針對該問題,請從此更改您的MySQL查詢:

"SELECT * FROM songs"

要將LIMIT用作SELECT一部分:

LIMIT子句可用於約束SELECT語句返回的行數。 LIMIT接受一個或兩個數字參數,這兩個參數都必須是非負整數常量(使用預處理語句時除外)。

例如,像這樣:

"SELECT * FROM songs LIMIT 0,50"

然后,您可以編寫一些邏輯來處理分頁,例如:

$start = 0;
$how_many = 50;
$query_sql = "SELECT * FROM songs LIMIT $start, $how_many";
$result = mysql_query ($query_sql);

我的第一個問題是桌子有多大?

如果是幾千行,建議將其分頁,一次僅加載50首歌曲。

如果只有幾百個,則只需要服務器花費一些時間來處理數據。

另外,要不更正您的代碼,但可能會有所幫助,請嘗試以下操作:

<?
    $connection = mysqli_connect ("localhost", "root", "", "dr") or die ("We couldn't connect!");
    $result = mysqli_query($connection, "SELECT * FROM songs");
    while ($row=mysqli_fetch_array($result)) {

        $name = $row ['songname'];
        $genres = $row ['songgenres'];
        $mediafire = $row ['mediafirelink'];
        $dropbox = $row ['dropboxlink'];
        $source = $row ['audiosource'];

        echo "
        <div class='playing'>
                <!-- ======== Song Name ======== -->
                    <li class='songnameli' id='$source'>
                        <span class='info'>$name</span>
                        <audio>
                            <source src='music/singles/$source.mp3'>
                            <source src='music/singles/$source.ogg'>
                        </audio>
                    </li>

                <!-- ======== Playlist ======== -->
                    <li class='playlistli'>
                        <img src='icons/addtoplaylist.png' title='Add tot the playlist!' />
                    </li>

                <!-- ======== Genres ======== -->
                    <li class='genresli'>
                        <img src='icons/genres.png' title='Related genres' />
                        <span class='addedtext genres'>$genres</span>
                    </li>

                <!-- ======== Social Media links ======== -->
                    <li>
                        <span>
                        <img src='icons/share.png' alt='Share this with your friends!' title='Share this!'>
                        <!-- /// facebook /// -->
                            <a href='http://www.facebook.com/sharer.php?u=http://www.declassified-recordings.com'
                               class='addedtext nlink'
                               target='blank_'
                               onclick='popup (this.href, 800, 500); return false'>Facebook
                            </a>

                        <span>/</span>

                        <!-- /// Twitter /// -->
                            <a href='http://twitter.com/share?
                                text=Thank%20you%20For%20Sharing!%20It%20means%20the%20world%20to%20us!%40Declassifi3d%20
                                &url=http://www.declassified-recordings.com'
                               class='twitterlink nlink'
                               target='blank_'
                               onclick='popup (this.href, 800, 500); return false'>Twitter</a>


                        </span>

                    </li>

                <!-- ======== Download links ======== -->

                    <li>
                        <img src='icons/download.png' title='Download!'  />
                        <span>
                            <!-- /// Mediafire /// -->
                                <a href='$mediafire'
                                   class='addedtext nlink'
                                   target='_blank'>Mediafire</a>

                            <span class='genres'>/</span>

                            <!-- /// Dropbox /// -->
                                <a href='$mediafire'
                                   class='twitterlink nlink'
                                   target='_blank'>Dropbox</a>


                        </span>
                    </li>
        </div>";


    }




    mysqli_close($connection);

?>

我將不再使用mysql_connection和舊格式,它已經過時了,我將使用mysqli進行所有操作。 http://www.php.net//manual/en/book.mysqli.php

如果我是我,我將更改2件事,其中之一是@JakeGould建議之類的結果限制,並且我將更改您回顯HTML代碼的方式(這將使插入者更容易),如下所示:

您也忘記將您的<li>放在<ul>

<?php


while ($row=mysql_fetch_array($result)) {

$name = $row ['songname'];
$genres = $row ['songgenres'];
$mediafire = $row ['mediafirelink'];
$dropbox = $row ['dropboxlink'];
$source = $row ['audiosource'];

?>

<div class='playing'>
    <ul>>
        <!-- ======== Song Name ======== -->
            <li class='songnameli' id='$source'>
                <span class='info'><?php echo $name; ?></span>
                <audio>
                    <source src='music/singles/$source.mp3'>
                    <source src='music/singles/$source.ogg'>
                </audio>
            </li>

        <!-- ======== Playlist ======== -->
            <li class='playlistli'>
                <img src='icons/addtoplaylist.png' title='Add tot the playlist!' />
            </li>

        <!-- ======== Genres ======== -->
            <li class='genresli'>
                <img src='icons/genres.png' title='Related genres' />
                <span class='addedtext genres'><?php echo $genres; ?></span>
            </li>

        <!-- ======== Social Media links ======== -->
            <li>
                <span>
                <img src='icons/share.png' alt='Share this with your friends!' title='Share this!'>
                <!-- /// facebook /// -->
                    <a href='http://www.facebook.com/sharer.php?u=http://www.declassified-recordings.com'
                       class='addedtext nlink'
                       target='blank_'
                       onclick='popup (this.href, 800, 500); return false'>Facebook
                    </a>

                <span>/</span>

                <!-- /// Twitter /// -->
                    <a href='http://twitter.com/share?
                        text=Thank%20you%20For%20Sharing!%20It%20means%20the%20world%20to%20us!%40Declassifi3d%20
                        &url=http://www.declassified-recordings.com'
                       class='twitterlink nlink'
                       target='blank_'
                       onclick='popup (this.href, 800, 500); return false'>Twitter</a>


                </span>

            </li>

        <!-- ======== Download links ======== -->

            <li>
                <img src='icons/download.png' title='Download!'  />
                <span>
                    <!-- /// Mediafire /// -->
                        <a href='<?php echo $mediafire; ?>'
                           class='addedtext nlink'
                           target='_blank'>Mediafire</a>

                    <span class='genres'>/</span>

                    <!-- /// Dropbox /// -->
                        <a href='<?php echo $mediafire; ?>'
                           class='twitterlink nlink'
                           target='_blank'>Dropbox</a>


                </span>
            </li>
        </ul>
</div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM