Index cfloop to php for loop


Index cfloop to php for loop

我正在用PHP重写一个coldfusion页面。 我有一个索引的 cfloop,里面有一个 cfoutput 查询。它看起来像这样:

    <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 }; ?>
循环

的内部索引工作得很好,但我只能让外部循环显示一次而不是五次选择标签代码(这是我所需要的)。

有什么建议吗?

问题是您在两个循环中都使用了$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 } ?>

第一个循环应该是for ($i=0; $i<5; $i++)而不是for ($i=0; $i<count($results); $i++),如果你想让它显示选择五次。

另外,不要对两个循环都使用$i,正如TNC在他的回答中提到的那样。这就是循环在第一次选择后退出的原因。

虽然你可以逐行翻译上面的内容,但下面的翻译可能会稍微高效一些。假设您使用的是 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>