我试图从mysql db生成动态内容填充 这是我的PHP代码:
<?php
include 'header.php';
error_reporting(1);
$user = "root";
$pass = "";
$dbName = "haimi";
mysql_connect('localhost', $user, $pass) or
die("Could not connect: " . mysql_error());
mysql_select_db($dbName);
$sql = "SELECT * FROM Projects ";
$result = mysql_query($sql);
?>
<?php
while ($line = mysql_fetch_array($result)) {
?>
<li class="filter" data-filter=".cat<?php echo $line['Category'];?>"><?php echo $line['Category'];?></li>
<?php
}
?>
li
显示正确,但以下情况不正确:
<div class="row projects m0">
<?php
while ($line = mysql_fetch_array($result)) { ?>
<div class="project mix catHouses">
<div class="tint"></div>
<a href="images/projects/".<?php echo $line['ProjectImage1']; ?> data-
lightbox="project" data-title="Central Hospital (building)">
<img src="images/projects/".<?php echo
$line['ProjectImage1']; ?> alt="<?php echo $line['ProjectTitle'];?>"
class="projectImg"> </a>
<div class="projectDetails row m0">
<div class="fleft nameType">
<div class="row m0 projectName"><?php echo $line['ProjectTitle'];?></div>
<div class="row m0 projectType"><?php echo $line['ProjectType'];?></div>
</div>
<div class="fright projectIcons btn-group" role="group">
<a href="images/projects/<?php echo $line['ProjectImage1']; ?>" data-lightbox="project" data-title="Central Hospital (building)" class="btn btn-default">
<i class="fa fa-link"></i></a>
<a href="#" class="btn btn-default"><i class="fa fa- search"></i></a>
</div>
</div>
</div>
<?php
}
?>
</div>
div
中的数据不会出现。
答案 0 :(得分:1)
您正在拨打一个电话,但尝试两次循环播放。为此,您需要将指针重置为开头:
//Add this after the first loop, but before the second
mysql_data_seek( $result, 0 );
你现在拥有它的方式,它是while($line = mysql_fetch_array($result))
,但是第二个循环从未进入,因为它已经到了终点。由于循环结束,它从不显示内容。
重要提示 不推荐使用mysql_ *函数,并在PHP 5.5中删除它们。您应该使用Mysqli或PDO。他们对mysql注射有更好的保护(见Bobby Tables)。
答案 1 :(得分:1)
这里有一些HTML错误:
<a href="images/projects/".<?php echo $line['ProjectImage1']; ?>
首先,不需要使用.
运算符(因为您使用的是HTML,而不是PHP),
您也应该将<?php ?>
标记放在href
引号内,这是正确的代码:
<a
href="images/projects/<?php echo $line['ProjectImage1']; ?>"
data-lightbox="project"
data-title="Central Hospital (building)"
>
<img
src="images/projects/<?php echo $line['ProjectImage1']; ?>"
alt="<?php echo $line['ProjectTitle']; ?>"
class="projectImg"
>
</a>
答案 2 :(得分:0)
你会像这样快速编写代码;) 怎么样:
while ($line = mysql_fetch_array($result)) {
$category = $line['Category'];
echo <<< LOB
<li class="filter" data-filter="$category">$category</li>
LOB;
}
答案 3 :(得分:0)
像@matthew先生所说的那样
我打了一个电话,我试图循环两次。
在while循环之前使用此代码解决了问题:
$result = mysql_query($sql);