2011-11-17 61 views
-1

我做了一个重复区域使用Dreamweaver,结果是这样的:设置上做了一个间隔/,而从5到5

<div> 
    <?php do { ?> 
    <div class="slide"> 
     <img src="<?php echo $row_Recordset1['imagemUrl']; ?>" /> 
     <h2><a href="projecto.php?projecto=<?php echo $row_Recordset1['idProj'];"><?php echo $row_Recordset1['titleProj']; ?></a></h2> 
    </div> 
    <?php while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?> 
</div> 

这里没有问题,它工作正常。

的事情是,我想只用5幻灯片的每一页,这样的事情:

<div> 
<div class="page"> 
    <?php do { ?>  
    <div class="slide"> 
     <img src="<?php echo $row_Recordset1['imagemUrl']; ?>" /> 
     <h2><a href="projecto.php?projecto=<?php echo $row_Recordset1['idProj'];"><?php echo $row_Recordset1['titleProj']; ?></a></h2> 
    </div> 
    <?php 
    $i = 0; 
    $r = $i % 5; 
    $i++; 
    if ($r == 0) { 
    ?> 
    </div> <!-- closes div.page --> 
    <div class="page"> <!-- adds a new div.page --> 
    <? } ?> 
    <?php while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?> 
</div> 

这显然不工作,但希望你会看到什么,我试图达到。

在此先感谢!

UPDATE:

结果我得到的是:

<div class="page"> 
<div class="slide">...</div> 
<div class="slide">...</div> 
<div class="slide">...</div> 
<div class="slide">...</div> 
<div class="slide">...</div> 
<div class="slide">...</div> 
<div class="slide">...</div> 
<div class="slide">...</div> 
</div> 

我想它是:

<div class="page"> 
<div class="slide">...</div> 
<div class="slide">...</div> 
<div class="slide">...</div> 
<div class="slide">...</div> 
<div class="slide">...</div> 
</div> 
<div class="page"> 
<div class="slide">...</div> 
<div class="slide">...</div> 
<div class="slide">...</div> 
</div> 
+0

你是什么意思的“不工作”?它在第一次迭代时关闭了div? – mishu

+0

如何使用'for循环'? – Zhianc

+0

@mishu我已更新,希望它能回答您的问题 – danielcorreia

回答

1

你在每次迭代i $设置为0。在do-while循环之前放置$i = 0

您应该也可以在$r = $i % 5;之前将$i++以获得您需要的结果。

编辑:你也是你的while语句前缺少一个右括号(错字?)

因此,完整的代码:

<div> 
    <div class="page"> 
    <?php 
    $i = 0; 
    do { ?>  
     <div class="slide"> 
      <img src="<?php echo $row_Recordset1['imagemUrl']; ?>" /> 
      <h2><a href="projecto.php?projecto=<?php echo $row_Recordset1['idProj'];?>"><?php echo $row_Recordset1['titleProj']; ?></a></h2> 
     </div> 
    <?php 
     $i++; 
     $r = $i % 5; 
     if ($r == 0) { 
    ?> 
     </div> <!-- closes div.page --> 
     <div class="page"> <!-- adds a new div.page --> 
    <?php 
     } 
    } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?> 
</div> 
0

像这样的循环,通过5次加入新<div>content</div>至变量$html。然后你可以在你的html主体中回应这个变量。

$html = ""; 

for ($i=0;$i<5;$i++) { 
    $html .= "<div class=\"page\">". $content[$i] . "</div>\n"; 
} 

加法:

<?PHP 

while ($row_Recordset = mysql_fetch_assoc($Recordset1)) { 

    $html .= "<div class='page'>\n"; 

    for ($i=0;$i<5;$i++) { 
     $html .= "<div class='slide'>". $row_Recordset[$i]['column'] . "</div>\n"; 
    } 

    $html .= "</div>\n"; 
} 
?> 

此代码将通过循环记录填充$html在每次迭代。试试echo $html,你将会得到一个你想要的结构。

0

你给的作品不是有效的php代码。 此行:

<h2><a href="projecto.php?projecto=<?php echo $row_Recordset1['idProj'];"><?php echo $row_Recordset1['titleProj']; ?></a></h2> 

打开一个PHP标签没有你打开下一个之前关闭它..所以第一步是改变该行

<h2><a href="projecto.php?projecto=<?php echo $row_Recordset1['idProj'];?>"><?php echo $row_Recordset1['titleProj']; ?></a></h2> 

还你错过关闭块,在这里:

<? } ?> 

你应该同时关闭,如果和DO /而块(所以另一个} )

的另一个问题是,每一步你改变$其实我到0,所以每次$ R将是0也

所以结论是:把你的问题,一步一步,你有更多的不止一个

+0

这些问题是输入错误,对不起回合。 $ i = 0在错误的地方,谢谢! – danielcorreia

0
<div> 
<div class="page"> 
<?php for ($i = 0; $row_Recordset1 = mysql_fetch_assoc($Recordset1); $i++) { ?> 
    <div class="slide"> 
     <img src="<?php echo $row_Recordset1['imagemUrl']; ?>" /> 
     <h2><a href="projecto.php?projecto=<?php echo $row_Recordset1['idProj']; ?>"><?php echo $row_Recordset1['titleProj']; ?></a></h2> 
    </div> 
    <?php if ($i % 5 == 0 && $i) { ?> 
    </div> <!-- closes div.page --> 
    <div class="page"> <!-- adds a new div.page --> 
    <?php } ?> 
<?php } ?> 
    </div> 
</div>