Заполните выбор, выпадающий от таблицы базы данных

В питоне есть 3 вида методов:

  • Метод экземпляра
  • Метод класса
  • Статический метод
class Person():
    species='homo_sapiens' # This is class variable
    def __init__(self, name, age):
        self.name = name # This is instance variable
        self.age = age

    def show(self):
        print('Name: {}, age: {}.'.format(self.name, date.today().year - self.age))

    @classmethod
    def create_with_birth_year(cls, name, birth_year):
        return cls(name, date.today().year - birth_year)

    @classmethod
    def print_species(cls):
        print('species: {}'.format(cls.species))

    @staticmethod
    def get_birth_year(age):
        return date.today().year - age


class Teacher(Person):
    pass

[1118 ] 1) Метод экземпляра ( show ) нуждается в экземпляре и должен использовать self в качестве первого параметра. Он может получить доступ к экземпляру через self и повлиять на состояние экземпляра.

2) Метод класса ( create_with_birth_year и print_species ) не нуждается в экземпляре и использует cls для доступа к классу и влияния на состояние класса. Мы можем использовать @classmethod для создания фабрики, например:

navy = Person.create_with_birth_year('Navy Cheng', 1989)
navy.show()

и , эта фабрика может быть унаследована :

zhang = Teacher.create_with_birth_year('zhang', 1980)
print(type(zhang))

и метод класса может использоваться переменная класса доступа:

Person.print_species()

3) Статическому методу ( get_birth_year ) не требуется специальный параметр ( self или cls [ 1113]) и изменит любое состояние класса или экземпляра. Он может использовать некоторую вспомогательную функцию для класса.

5
задан Brad 14 October 2008 в 00:39
поделиться

2 ответа

$query = "SELECT volunteers_2009.id, volunteers_2009.comments, volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3, volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id, venues.venue_name FROM volunteers_2009 AS volunteers_2009 LEFT OUTER JOIN venues ON (volunteers_2009.venue_id = venues.id) ORDER by $order $sort";

$res = mysql_query($query);
echo "<select name = 'venue'>";
while (($row = mysql_fetch_row($res)) != null)
{
    echo "<option value = '{$row['venue_id']}'";
    if ($selected_venue_id == $row['venue_id'])
        echo "selected = 'selected'";
    echo ">{$row['venue_name']}</option>";
}
echo "</select>";

:)

18
ответ дан 18 December 2019 в 06:36
поделиться

принятие Вас имеет массив мест проведения... лично мне не нравится смешивать sql с другим колдовством.

function displayDropDown($items, $name, $label, $default='') {
  if (count($items)) {
    echo '<select name="' . $name . '">';
    echo '<option value="">' . $label . '</option>';
    echo '<option value="">----------</option>';
    foreach($items as $item) {
      $selected = ($item['id'] == $default) ? ' selected="selected" : '';
      echo <option value="' . $item['id'] . '"' . $selected . '>' . $item['name'] . '</option>';
    }
    echo '</select>';
  } else {
    echo 'There are no venues';
  }
}
4
ответ дан 18 December 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: