2016-07-10 4 views
0

Ich habe ein Optionsmenü, das ordnungsgemäß funktioniert, wenn Datensätze angezeigt werden sollen. Ich habe manchmal einen neuen Gegenstand, der noch keine Aufzeichnungen hat und ich möchte, dass das Optionsmenü keine Daten anzeigt. Stattdessen zeigt es 1969-12-31.Optionsmenü mit Datum Wird angezeigt als 1969-12-31

<select name="selDate" id="selDate" onchange="formDate.submit()"> 
<option value="%">all dates</option> 
    <?php 
do { 
?> 
    <option value="<?php echo $row_RecordsetDate['date']?>"<?php if 
($varDate_Recordset1 == $row_RecordsetDate['date']) {echo 'selected';} ?>><? 
php $dates=date('l, F d, Y',strtotime($row_RecordsetDate['date'])); 
    ?></option> 
    <?php 
} while ($row_RecordsetDate = mysql_fetch_assoc($RecordsetDate)); 
$rows = mysql_num_rows($RecordsetDate); 
if($rows > 0) { 
    mysql_data_seek($RecordsetDate, 0); 
    $row_RecordsetDate = mysql_fetch_assoc($RecordsetDate); 
} 
?> 
</select> 

Wie kann ich die Option Menüanzeige leer, wenn keine Aufzeichnungen oder angeben, nur kein Datum verfügbar?

+0

In welchem ​​Format ist das Datum in der Datenbank gespeichert? Wie ist der Wert von $ row_RecordsetDate ['date']? –

+0

Es wird nur als yyyy-mm-dd gespeichert. 2016-06-26 – user3258571

Antwort

0
<select name="selDate" id="selDate" onchange="formDate.submit()"> 
<option value="%">all dates</option> 
<?php 
    while($row = mysql_fetch_assoc($RecordsetDate)){ 
     if(isset($row['date'])){ 
      if(strlen($row['date'])){ 
       echo '<option value="'.$row['date'].'"'; 
       if($varDate_Recordset1 == $row['date']){ 
        echo 'selected'; 
       } 
       $date = date('l, F d, Y',strtotime($row['date'])); 
       echo '>'.$date.'</option>'; 
      } 
     } 
    } 
?> 
</select> 
+0

Fast funktioniert. Das einzige Problem ist jetzt, dass nur 1 Datum in meinem Optionsmenü angezeigt wird und nicht mehrere Daten, wenn ich Datensätze habe. – user3258571

+0

Jede Hilfe wäre willkommen. Lösung funktioniert, außer dass es nur das Datum für den ältesten Datensatz in der Abfrage und nicht alle Daten in der Abfrage für das Optionsmenü anzeigt. – user3258571

0

Durch Versuch und Irrtum kam ich zu der folgenden Lösung. Ich habe eine if else-Anweisung in den Optionswert eingefügt.

<option value="<?php echo $row_RecordsetDate['date']?>"<?php if ($varDate_Recordset1 == $row_RecordsetDate['date']) {echo 'selected';} ?>><?php $dates=date('l, F d, Y',strtotime($row_RecordsetDate['date'])); $rows = mysql_num_rows($RecordsetDate); if(!empty($rows)){ 
       echo $dates; 
      }else{ 
      echo ""; }?></option> 

Unten ist die vollständige Lösung.

<select name="selDate" id="selDate" onchange="formDate.submit()"> 
     <option value="%">all dates</option> 
      <?php 
    do { 
    ?> 
      <option value="<?php echo $row_RecordsetDate['date']?>"<?php if ($varDate_Recordset1 == $row_RecordsetDate['date']) {echo 'selected';} ?>><?php $dates=date('l, F d, Y',strtotime($row_RecordsetDate['date'])); $rows = mysql_num_rows($RecordsetDate); if(!empty($rows)){ 
       echo $dates; 
      }else{ 
      echo ""; }?></option> 
      <?php 
    } while ($row_RecordsetDate = mysql_fetch_assoc($RecordsetDate)); 
     $rows = mysql_num_rows($RecordsetDate); 
     if($rows > 0) { 
      mysql_data_seek($RecordsetDate, 0); 
      $row_RecordsetDate = mysql_fetch_assoc($RecordsetDate); 
     } 
    ?> 
     </select> 
Verwandte Themen