2012-06-27 81 views
1

我正在用PHP重寫一個coldfusion頁面。我有一個索引cfloop,並在其中一個cfoutput查詢。它看起來像這樣:索引cfloop到php for循環

<h2>Choose up to Five Counties:</h2> 
<cfif results.recordcount gt 0> 
<cfloop from="1" to="5" step="1" index="i"> 
<!--- Looping Data ---> 
    <cfoutput> 
    <select name="counties" style="width:150px; font-family:Arial,Helvetica; font-size:11px;"> 
     <option value="">- select county - 
    </cfoutput> 
     <cfoutput query="results"> 
      <option value="#County_Name#" style="font-family:Arial,Helvetica; font-size:12px;">#County_Name#</option> 
     </cfoutput> 
    </select> 
</cfloop> 
</cfif> 

這段代碼循環在選擇標籤碼5次,循環在MSSQL查詢選項標籤輸出。我已經寫了PHP側,它看起來像這樣:

<h2>Choose up to Five Counties:</h2> 

<?php if(count($results) > 0) { 
    for ($i=0; $i<count($results); $i++) { 
       if ($i == 5) { 
        break; 
        } ?> 

    <select name="counties" style="width:150px; font-family:Arial,Helvetica; font-size:11px;"> 
     <option value="">- select county - 

      <?php for ($i=0; $i < count($results); $i++) { ?> 

      <option value="<?php echo $results[$i]['County_Name']; ?>" style="font-family:Arial,Helvetica; font-size:12px;"><?php echo $results[$i]['County_Name']; ?></option> 

      <?php } ?> 

    </select> 
    <?php } ?> 
    <?php }; ?> 

for循環內指數工作得很好,但我只能得到外循環一次,而不是顯示選擇標籤碼5次(其中是我需要的)。

有什麼建議嗎?

回答

2

問題是您在兩個循環中都使用$i。所以第一次循環通過第二個循環時,它每次都重置爲0。

你的第二個循環變量更改爲這樣的事情:

<?php for ($x=0; $x < count($results); $x++) { ?> 
<option value="<?php echo $results[$x]['County_Name']; ?>" style="font-family:Arial,Helvetica; font-size:12px;"><?php echo $results[$x]['County_Name']; ?></option> 
<?php } ?> 
0

第一回路應for ($i=0; $i<5; $i++),而不是for ($i=0; $i<count($results); $i++),如果你想讓它顯示選擇五倍。

此外,不要使用$i兩個循環,因爲TNC在他的答案中提到。這就是循環在第一次選擇後退出的原因。

0

雖然你可以在上面翻譯行,但下面的例子可能會稍微有效一些。假設您使用的是mssql_ *函數集:

<?php 
$query = myssql_query('SELECT * ....'); 
?> 

<h2>Choose up to Five Counties:</h2> 
<select name="counties" style="width:150px; font-family:Arial,Helvetica; font-size:11px;"> 

<?php 
while($results = mssql_fetch_assoc($query)){ 
    echo "<option value=\"{$results['County_Name']}\" style=\"font-family:Arial,Helvetica; font-size:12px;\">{$results['County_Name']}</option>"; 
} 
?> 

</select>