[英]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.