选项菜单,上次记录为默认值

I have an option menu as follows:

<select name="selCycle" id="selCycle" onChange="formFilter.submit()">
    <option value="%">all cycles</option>
    <?php
    do {
    ?>
        <option value="<?php echo $row_Recordset2['Cycle'] ?>"
        <?php
        if ($varCycle_DetailRS4 == $row_Recordset2['Cycle']) {
            echo 'selected';
        } elseif ($varCycle2_DetailRS4 == $row_Recordset2['Cycle']) {
            echo 'selected';
        } else {
            echo '';
        }
        ?>
        >
        <?php echo $row_Recordset2['Cycle'] ?>
        </option>
        <?php
    } while ($row_Recordset2 = mysql_fetch_assoc($Recordset2));
        $rows = mysql_num_rows($Recordset2);
        if ($rows > 0) {
            mysql_data_seek($Recordset2, 0);
            $row_Recordset2 = mysql_fetch_assoc($Recordset2);
    }
    ?>
</select>

Currently, the default selection is showing all records. I would like for the default to be the latest set of data equal to:

 <?php echo $row_RecordsetCycle['Cycle']; ?>

So option menu would list 1,2,3,4,5 with 5 being the default when the page loads. User can then pick any option available. is set to last record in table with a limit of 1 so it will always echo the last record, which composes the option menu.

Help please. What should I edit so that the one record in

 <?php echo $row_RecordsetCycle['Cycle']; ?> 

is the default or selected option menu when the page loads? Currently, the default just shows all records and is extremely slow to load, hence why I want the latest record to be the default.

Try using end() to get the last array:

<?php
$arr =array(1,2,3,4,5);
$last = end($arr);
?>
<select name="selCycle" id="selCycle" onChange="formFilter.submit()">
    <option value="%">all cycles</option>
    <?php foreach($arr as $key=>$val):
    if(in_array("$last", array($val))==true){
       echo '<option value="" selected="selected">'.$val.'</option>';
       continue;
    }
     echo '<option>'.$val.'</option>';      
endforeach; ?>    
</select>

Stop using mysql extension, use pdo or mysqli. Using your question code, it should be:

$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$last = end($row_Recordset2);

foreach($row_Recordset2 as $key=>$val){
   //other code
   if(in_array("$last", array($val))==true){
       echo '<option value="" selected="selected">'.$val.'</option>';
       continue;
    }
     echo '<option>'.$val.'</option>'
}

Working Demo

I took a stab at rewriting this. (code at the end) the first thing I did was turn your do_while loop into a while loop as I think it was adding unnecessary confusion to the code after doing that I moved some code

$rows = mysql_num_rows($Recordset2);
if ($rows > 0) {
    mysql_data_seek($Recordset2, 0);
    $row_Recordset2 = mysql_fetch_assoc($Recordset2);
}

above the while loop as I thought it was needed to "prime the pump" of the while loop

I also pulled the

if ($varCycle_DetailRS4 == $row_Recordset2['Cycle']) {
    return ' selected';
} elseif ($varCycle2_DetailRS4 == $row_Recordset2['Cycle']) {
    return ' selected';
} else {
    return '';
}

out into a function so as to simplify the code further

now here come my assumptions I assumed that $varCycle_DetailRS4 was the last value and that $varCycle2_DetailRS4 was the currentlySelected that was set befor the code provided; if that is the case and that $varCycle2_DetailRS4 would be unset if it was the first then all that would need to be done is to slightly modify the isSelected to only set one option as selected.

<?php
function isSelect($value)
{
    $lastValue = $varCycle_DetailRS4;
    $currentlySelected = $varCycle2_DetailRS4;

    if(isset($currentlySelected))
    {
        $selectValue = $currentlySelected;
    }
    else
    {
        $selectValue = $lastValue;
    }   


    if ($selectValue == $value) {
        return ' selected';
    } else {
        return '';
    }
 }
?>
<select name="selCycle" id="selCycle" onChange="formFilter.submit()">
    <option value="%">all cycles</option>
    <?php
    $rows = mysql_num_rows($Recordset2);
    if ($rows > 0) {
        mysql_data_seek($Recordset2, 0);
        $row_Recordset2 = mysql_fetch_assoc($Recordset2);
    }
    while ($row_Recordset2 = mysql_fetch_assoc($Recordset2)) 
    {
        $value = $row_Recordset2['Cycle']
        echo "        <option value=\"".$value."\"".isSelect($value).">".$value."</option>/n";
    } ;   
    ?>
</select>