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