2012-03-20 90 views
4

我試着讓這個代碼中的最後一個td與之前的td相同,但是我不能和td打印在一個新行中。如何讓它們彼此相鄰,問題在於第一個5 td處於foreach循環,而最後的td並不遵循此foreach,因爲它的值是函數而不是foreach中的鍵或值。彼此相鄰的表格行

<?php foreach($downloads as $dl) { ?> 
<tr id="this"> 
<td ><img src="images/<?=$dl['type']?>.png"/></td> 
<td id="no3"><?=$dl['type']?></td> 
<td> 
    <a target="_blank" style="margin-right:3px" href="download.php?id=<?=$dl['id']?>"> 
    <?=$dl['title']?> 
    </a> 
</td> 
<td> 
    <center> 
    <a href="http://<?=urlencode($dl['surl'])?>"><?=$dl['sname']?></a> 
    </center> 
</td> 
<td align="center"><?=$dl['views']?></td> 
</tr> 
<?php } ?> 


    <td align="center"><?=$core->use_love(); ?></td> 

http://advphp.com/imgup/images/41553286204776144664.jpg http://advphp.com/imgup/images/86639621977227017216.jpg

最後TD

public function use_love(){ 

    $sql=mysql_query("select * from wcddl_downloads ORDER BY id DESC LIMIT ".$this->pg.",".$this->limit.""); 

    while($row=mysql_fetch_array($sql)) 
    { 
    $down_id=$row['id']; 
    $love=$row['love']; 
    ?> 
    <div class="box" align="center"> 
    <a href="#" class="love" id="<?php echo $down_id; ?>"> 
    <span class="on_img" align="left"> <?php echo $love; ?> </span> 
    </a> 
    </div> 
    <? 
    }    
} 
+1

您仍然可以將它放置在每個循環中,它仍然會運行並將值添加到最後一行。或者你可以在循環外部運行該函數,存儲它的值並將該值插入到td中(這又將在每個循環中)。 – Davos555 2012-03-20 14:44:05

+0

我不希望該函數在foreach循環中,因爲它將在單個td中迭代,我只是想讓兩個tr彼此相鄰,只要函數的td在循環之外 – 2012-03-20 14:46:20

+1

想要最後一列顯示在每一行上,還是隻顯示最後一行?爲什麼你不能將它存儲在一個字符串中,並將其作爲'@ Davos555'建議的內容添加到foreach中? – mellamokb 2012-03-20 14:49:40

回答

1

最後<td>(在foreach環外的一個)的功能是一個新行,因爲這是最後<tr>標籤外。解決方法之一是始終關閉</tr>標籤的最後<td>後,像這樣:

<?php 
$first_time = True; 
foreach($downloads as $dl) { 
    // If this is the first time through the loop, don't echo a </tr> tag: 
    if ($first_time) { 
     $first_time = False; 
    } else { 
     echo "</tr>"; 
    } 

    // Now print the new row, but don't close it yet: 
?> 

<tr id="this"> 
    <td><img src="images/<?=$dl['type']?>.png"/></td> 
    <td id="no3"><?=$dl['type']?></td> 
    <td><a target="_blank" style="margin-right:3px" href="download.php?id=<?=$dl['id']?>"><?=$dl['title']?></a></td> 
    <td><center><a href="http://<?=urlencode($dl['surl'])?>"><?=$dl['sname']?></a></center></td> 
    <td align="center"><?=$dl['views']?></td> 

<?php 
} 
?> 

<td align="center"><?=$core->use_love(); ?></td> 
</tr> 

這將始終把最後<td>的最後一行。

+0

我想你還需要在你的''中有一個'colspan =「2」'屬性,你可以在其中顯示除最後一個之外的視圖。爲了獲得最後的下載,你需要一個'count($ downloads)',每次循環時增加它並相應地檢查它以插入最後的''。 – Maxime 2012-03-20 15:00:15

+0

我用線圖更新了線索來描述我想要的東西 – 2012-03-20 15:01:56

+0

好主意史蒂夫,但最後的td印在一個新的線上,但在我想要的相同位置,只是我們想要的方式是在同一行........ – 2012-03-20 15:09:02

1

更新:我剛纔看到你添加了一個圖。現在這個答案是沒有道理的,因爲之前給出的文本描述與您想要在圖中實現的內容無關。

我將修改提交給Steve Nay的答案,因爲您需要在所有TR中使用相同數量的TD。如果您沒有相同的計數,則需要使用colspan來實現它。我已經添加了一個計數器來檢查這是否是最後一次循環。這裏是:

<?php 
$downloads_count = count($downloads); 
$counter = 0; 
foreach($downloads as $dl) : 
    $counter++; 
    // If this is the first time through the loop, don't echo a </tr> tag: 
    if ($counter > 1) { 
     echo "</tr>"; 
    } 

    // Now print the new row, but don't close it yet: 
?> 

<tr id="this"> 
    <td><img src="images/<?=$dl['type']?>.png"/></td> 
    <td id="no3"><?=$dl['type']?></td> 
    <td><a target="_blank" style="margin-right:3px" href="download.php?id=<?=$dl['id']?>"><?=$dl['title']?></a></td> 
    <td><center><a href="http://<?=urlencode($dl['surl'])?>"><?=$dl['sname']?></a></center></td> 
    <td align="center"<?php if ($downloads_count != $counter) echo ' colspan="2"'; ?>><?=$dl['views']?></td> 

<?php endforeach; ?> 

    <td align="center"><?=$core->use_love(); ?></td> 
</tr> 
+0

感謝maxiem,我希望如果達到了我想要的,簡而言之要多描述一下, 這是上一個td函數的代碼 – 2012-03-20 15:17:34