所以下面的代码有效,它正在做我想要它做的一切。然而,当我退后一步时,它似乎是一个过于复杂的方法,可以说是php中最常见的任务之一。
我对php有足够的了解,以便在我看到它们时弄清楚大多数事情正在做什么,并创建一些相当难看的代码,就像你将在下面看到的那样;然而,更好的点逃避了我。
我希望如果有人有空闲时间,他/她可以看一遍,并向我展示一个更简洁的方法来解决这个问题。
<?php
$result = mysql_query('SELECT * FROM events');
$i = 1;
while ($row = mysql_fetch_assoc($result)) {
echo '<div id="item_gallery_s'.$i .'"'. 'class="fluid profileImgWrap goldDiagGrad">' .
'<div class="profile_name">' . $row['name'] . '<br /><span class="profile_date">' .
'<a href="http:#"
target="_blank"
title="some title">' . $row['place'] .
'</a></span></div><!-- DCD Diva Name -->' .
'<a rel="events[events]"
href="#">' .
'<div class="profile_banner">Custom Banner</div><!-- Banner -->' .
'<img src='.'"img/upload/'.$row['icon'].
'"' .
'alt="image description |'.$row['name'].
'"/>' .
'<!-- Photo --></a></div><!-- END #item_gallery_s'.$i .'-->';
$i++;
}?>
答案 0 :(得分:0)
这就是“简洁”。
你不能在里面使用回声。并使用php短标签。
while ($row = mysql_fetch_assoc($result)) {
?>
<a href="http:#" target="_blank" title="some title"><?=$row['place'];?></a>
<?php
}
?>
“清理”的另一种方法是使用模板引擎,但再一次只用于HTML部分。
<a href="http:#" target="_blank" title="some title">{place}</a>
良好的编码!
答案 1 :(得分:0)
循环本身很好,但你会发现HTML-in-strings的不同意见。在过去的七年里,我鼓励我的团队使用带有php标签的HTML,或者我们依赖于完整的模板系统:
<?php while ($row = mysql_fetch_assoc($result)): ?>
<div><?= $row['something'] ?></div>
<?php endwhile ?>
虽然我们为更清晰的代码启用了短标签。这样做的好处是它更干净 - 更少报价,逃避问题,IDE将能够突出显示html语法。大多数人在引用内容时将html视为字符串。
答案 2 :(得分:0)
你可以通过散布实际的HTML来清理它,而不是简单地回应它:
<?php
$result = mysql_query('SELECT * FROM events');
$i = 1;
while ($row = mysql_fetch_assoc($result)) {
?>
<div id="item_gallery_s<?php echo $i; ?>" class="fluid profileImgWrap goldDiagGrad">
<div class="profile_name">
<?php echo $row['name']; ?>
<br />
<span class="profile_date"><a href="http:#" target="_blank" title="some title"><?php echo $row['place']; ?></a></span>
</div><!-- DCD Diva Name -->
<a rel="events[events]" href="#"><div class="profile_banner">Custom Banner</div><!-- Banner -->
<img src="img/upload/<?php echo $row['icon']; ?>" alt="image description |<?php echo $row['name']; ?>"/><!-- Photo --></a>
</div><!-- END #item_gallery_s<?php echo $i; ?> -->
<?php
$i++;
}?>
另一种选择,取决于您需要做多少工作,将是一个完整的模板引擎,如Smarty。
答案 3 :(得分:0)
以下是我将如何格式化此代码(作为个人风格):
<?php
$result = mysql_query('SELECT * FROM events');
$i = 1;
while ($row = mysql_fetch_assoc($result)) {
echo
'<div id="item_gallery_s'.$i.'" class="fluid profileImgWrap goldDiagGrad">
<div class="profile_name">' . $row['name'] . '<br /><span class="profile_date">
<a href="http:#" target="_blank" title="some title">' . $row['place'] .
'</a></span>
</div><!-- DCD Diva Name -->
<a rel="events[events]" href="#">
<div class="profile_banner">Custom Banner</div><!-- Banner -->
<img src="img/upload/' . $row['icon']. '"
alt="image description |' . $row['name']. '"/>
<!-- Photo -->
</a>
</div><!-- END #item_gallery_s'.$i .'-->';
$i++;
}
?>
还要尝试使用一致的缩进,以便轻松判断哪些内容与之匹配。顺便说一下,<div>
(内联元素)中的<a>
(块元素)是不好的形式。你的意思是使用<span>
吗?学习使用W3C验证器来获取这些东西。