2012-07-03 4 views
1

Все, Если я идти следующие поля базы данных/значения:Выберите вариант на основе результатов MySql

 
user_id  field_name  field_value 
1   EventHour1  1 
1   EventMinute1 30 
1   EventAMPM1  am 
1   Event_1  Set Up 
1   EventHour2  5 
1   EventMinute2 30 
1   EventAMPM2  am 
1   Event_2  Take Down 

Тогда у меня есть следующий HTML/PHP:

<?php 
for($i=0;$i<50;$i++){ 
if ($i%2==0){ 
    echo '<tr bgcolor="#CCCCCC">'; 
} else { 
echo '<tr>'; 
} 
?> 
<td><select size="1" id="EventHour<?php echo $i; ?>" name="EventHour<?php echo $i; ?>" > 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
    <option>4</option> 
    <option>5</option> 
    <option>6</option> 
    <option>7</option> 
    <option>8</option> 
    <option>9</option> 
    <option>10</option> 
    <option>11</option> 
    <option>12</option> 
    </select> : <select size="1" name="EventMinute<?php echo $i; ?>" id="EventMinute<?php echo $i; ?>" > 
    <option>00</option> 
    <option>05</option> 
    <option>10</option> 
    <option>15</option> 
    <option>20</option> 
    <option>25</option> 
    <option>30</option> 
    <option>35</option> 
    <option>40</option> 
    <option>45</option> 
    <option>50</option> 
    <option>55</option> 
    </select> 
    <select size="1" name="EventAMPM<?php echo $i; ?>" id="EventAMPM<?php echo $i; ?>"> 
    <option>PM</option> 
    <option>AM</option> 
    </select></td> 
<td><b>&nbsp; 
    <select size="1" name="Event_<?php echo $i; ?>" id="Event_<?php echo $i; ?>" class="event_selection"> 
    <option>Select Event...</option> 
    <option value="Set Up">Set Up</option> 
    <option value="Take Down">Take Down</option> 

    </select> 
    </b></td> 
<td>&nbsp;Note: 
    <input type="text" name="Note<?php echo $i; ?>" id="Note<?php echo $i; ?>"> 
    </td> 
</tr> 
<?php 
} 
?> 

Что я d хотел бы сделать, это установить значения выбора на основе результатов базы данных. Поэтому, если выбранным идентификатором является EventHour1, я хотел бы сделать параметр выбора равным 1, и если бы это был Event_2, я бы хотел, чтобы опция выбора была Take Down.

Как я могу это сделать с помощью PHP? Любая помощь будет принята с благодарностью!

Заранее благодарен

+0

Вы загружаете свои параметры из базы данных, или они действительно жестко закодированы так? – mellamokb

+0

@mellamokb В настоящее время они жестко закодированы, но в конечном итоге я мог бы выбрать их из базы данных. – user1048676

+0

Я бы определенно получил их в базе данных или массиве. Затем вы выполняете цикл, чтобы сгенерировать параметры, и используйте приведенный ниже код @ Mike, чтобы отметить выбранный, если значение соответствует текущему значению из базы данных. – mellamokb

ответ

1

Вот основная идея с использованием массива. В идеале варианта будет читаться из базы данных вместо (\t и \n просто сохранить выходной формат HTML чистым, когда вы должны просматривать источник для отладки - вы можете также использовать <?php echo $i?> метод вывод, если вы предпочитаете):

$curVal = /* lookup curVal from database for event */ 
echo "<select size='1' id='EventHour$i' name='EventHour$i'>\n"; 
$options = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); 
foreach ($options as $option) { 
    if ($curVal == $option) 
     $selected = " selected='selected'"; 
    else 
     $selected = ""; 
    echo "\t<option$selected>$option</option>\n"; 
} 
echo "</select>\n\n"; 

Который должен оказывать нечто подобное для события 2, например:

<select size='1' id='EventHour2' name='EventHour2'> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
    <option>4</option> 
    <option selected='selected'>5</option> 
    <option>6</option> 
    <option>7</option> 
    <option>8</option> 
    <option>9</option> 
    <option>10</option> 
    <option>11</option> 
    <option>12</option> 
</select> 

Демо: http://ideone.com/BoEfr


Я также сомневаюсь в вашем дизайне базы данных. Если вы пытаетесь сохранить события в базе данных, я думаю, вы путаете проблемы с презентацией (идентификаторы полей и т. Д.), С хранилищем данных. Ваша база данных просто нужно, чтобы захватить основные семантику данных, которые являются детали событий:

event_id | user_id | event_name | hour | minute | am_pm 
1  | 1  | Set Up  | 1 | 30  | am 
2  | 1  | Take Down | 5 | 30  | am 

Тогда при отображении событий, вы позаботитесь о представлении его осмысленным образом, то есть в таблице формат с выпадающими меню или текстовыми полями для ввода данных.

Смежные вопросы