2013-10-02 2 views
0

Мне нужно иметь около 60 различных полей в форме, которые содержат одни и те же элементы. Единственное отличие - это ID, вызываемый моим запросом. Идентификатор будет заполнять данные для меня из mysql.Многоразовые наборы полей PHP

Есть ли способ сделать это более эффективно, кроме добавления 60 полей?

<fieldset> 
    <h2>Make Your Pick</h2> 
     <?php 

     require_once ('mysql_connect.php'); 

     $query = "SELECT id, name FROM table WHERE id = 1"; 
     $result = @mysql_query ($query) or die ('error submitting' .mysql_error()); 

     echo "<select name='winner' id='winner'><option>Who Will Win?</option>"; 
     while($drop=mysql_fetch_array($result)){ 

     //data stored in $drop 
     echo "<option value=$drop[id]>$drop[name]</option>"; 
     } 
     echo "</select>"; 

     ?> 
    <input id="insert" type="submit" value="Next" /> 
</fieldset> 
+0

Вы слышали о ['for' loop] (http://php.net/manual/en/control-structures.for.php)? –

+0

Почему вы не можете помещать 'while' в'

'? –

+1

(1) Не используйте 'mysql_ *' функции больше, но MySQLi/PDO с подготовленными операторами. (2) Не используйте '@' для подавления ошибок, это маскировка ошибок. (3) Не умирайте в середине кода; неудачно изящно. –

ответ

0

Я нашел ответ!

<?php 
for ($i = 1; $i <= 60; $i++) { 
echo '<fieldset> 
<h2 class="fs-title">Make Your Pick</h2>'; 
     require_once ('mysql_connect.php'); 

    $query = "SELECT id, name FROM table WHERE id = $i"; 
    $result = @mysql_query ($query) or die ('error submitting' .mysql_error()); 

    echo "<select name='winner' id='winner'><option>Who Will Win?</option>"; 
    while($drop=mysql_fetch_array($result)){ 

    //data stored in $drop 
    echo "<option value=$drop[id]>$drop[name]</option>"; 
    } 
    echo "</select>"; 

echo '<hr> 
<input id="insert" type="button" name="next" class="next action-button" value="Next" /> 
</fieldset>'; 
} 
?> 
+0

Теперь я воспользуюсь рекомендациями Барта в его втором комментарии. Время узнать о подготовленных заявлениях! – CBB