[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос по выводу статического метода.
evdonik
Все доброго времени суток.
Вопрос вот на какую тему.
есть статический метод Display();

который выводит таблицу сотрудников,то есть есть файл employee.dat.
При вызове метода выводится шапка таблицы, обходится файл вытаскиваются все поля,и в цикле выводится таблица.

Вот примерный код.
public static function Display()
{


$users2 = file("employees.db");
echo "
<table border='0' id='table' class='sortable'>
<thead>
<tr>

<th height='24'>Номер</th>
<th>Фамилия</th>
<th>Имя</th>
<th>Отчество</th>
<th>Должность</th>
<th>Пол</th>

</tr>
</thead>
<tbody>"
;
$users2 = file("employees.db");
foreach ($users2 as $key2=>$user2) {$sex_array= array(0=>'Мужской',1=>'Женский');
list($id, $surname, $name,$patronymic, $post, $pol) = explode("|", $user2);
if($pol==0){$pol_t=$sex_array[0];} else {$pol_t=$sex_array[1];}
echo "
<tr>
<td>
$id</td>
<td>
$surname</td>
<td>
$name</td>
<td>
$patronymic</td>
<td>
$post</td>
<td>
$pol_t</td>
</tr>"
;}

}


Вызывается вот таким способом
employee::Display();

То есть без параметра тупо выводится весь файл со всеми сотрудниками

Все работает,но вот какой вопрос-"Как видно из кода,
list
разбивает строки на переменные,и в цикле выводит переменные,а как допустим вывести табличку только с мужчинами($pol==0) или только с женщинами ($pol==1)?"
чтоб вызовы были вот такие
employee::Display(0); Для Мужчин
и
employee::Display(1);Для женщин 
.


Сделал вот таким образом..но получилось как то громоздко и немножко не то.
вызов выглядит вот таким образом
employee::Display($pol);





static function Display($pol){

if(isset($_POST['pol']))
{

if (isset($_POST['pol'])) {$pol = $_POST['pol']; }
$users2 = file("employees.db");
echo "
<table border='0' id='table' class='sortable'>
<thead>
<tr>

<th height='24'>Номер</th>
<th>Фамилия</th>
<th>Имя</th>
<th>Отчество</th>
<th>Должность</th>
<th>Пол</th>

</tr>
</thead>
<tbody>"
;
$sex_array= array(0=>'Мужской',1=>'Женский');



if(isset($pol) &&$pol==0){ $sex_array= array(0=>'Мужской',1=>'Женский');
foreach ($users2 as $key2=>$user2) {
list($id, $surname, $name,$patronymic, $post, $pol) = explode("|", $user2);
if($pol==0){$pol_t=$sex_array[0];$user_m=$user2;
list($id, $surname, $name,$patronymic, $post, $pol) = explode("|", $user_m);
echo "
<tr>
<td>
$id</td>
<td>
$surname</td>
<td>
$name</td>
<td>
$patronymic</td>
<td>
$post</td>
<td>
$pol_t</td>
</tr>"
;}} }

if(isset($pol) &&$pol==1){ $sex_array= array(0=>'Мужской',1=>'Женский');
foreach ($users2 as $key2=>$user2) {
list($id, $surname, $name,$patronymic, $post, $pol) = explode("|", $user2);
if($pol==1){$pol_t=$sex_array[1];$user_m=$user2;
list($id, $surname, $name,$patronymic, $post, $pol) = explode("|", $user_m);
echo "
<tr>
<td>
$id</td>
<td>
$surname</td>
<td>
$name</td>
<td>
$patronymic</td>
<td>
$post</td>
<td>
$pol_t</td>
</tr>"
;}} }


if(isset($pol) && $pol==''){
foreach ($users2 as $key2=>$user2) {
list($id, $surname, $name,$patronymic, $post, $pol) = explode("|", $user2);
if($pol==0){$pol_t=$sex_array[0];} else {$pol_t=$sex_array[1];}
echo "
<tr>
<td>
$id</td>
<td>
$surname</td>
<td>
$name</td>
<td>
$patronymic</td>
<td>
$post</td>
<td>
$pol_t</td>
</tr>"
;}}

}
}




Посоветуйте как лучше сделать чтоб добится такого рода вызова
employee::Display();
employee::Display(1);
employee::Display(0);








Спустя 3 минуты, 9 секунд (13.01.2011 - 10:40) Hoodzon написал(а):
Кто же Вас, извиняюсь за грубость, так учил говнокодить?

Спустя 5 минут, 8 секунд (13.01.2011 - 10:45) evdonik написал(а):
Цитата (Hoodzon @ 13.01.2011 - 07:40)
Кто же Вас, извиняюсь за грубость, так учил говнокодить?

Еслиб кодил как Вы сударь то советов бы наверное не спрашивал.

Спустя 10 минут, 21 секунда (13.01.2011 - 10:56) linker написал(а):
Первое
static function Display($selpol = null)
{
...
}
второе
foreach ($users2 as $key2=>$user2) 
{
list($id, $surname, $name,$patronymic, $post, $pol) = explode("|", $user2);
if (is_null($selpol) || $selpol == $pol)
{
$pol_t = $sex_array[$pol];
echo "
<tr>
<td>
$id</td>
<td>
$surname</td>
<td>
$name</td>
<td>
$patronymic</td>
<td>
$post</td>
<td>
$pol_t</td>
</tr>"
;
}
}

Спустя 9 минут, 8 секунд (13.01.2011 - 11:05) evdonik написал(а):
Цитата (linker @ 13.01.2011 - 07:56)
Первое
static function Display($selpol = null)
{
...
}
второе
foreach ($users2 as $key2=>$user2) 
{
list($id, $surname, $name,$patronymic, $post, $pol) = explode("|", $user2);
if (is_null($selpol) || $selpol == $pol)
{
$pol_t = $sex_array[$pol];
echo "
<tr>
<td>
$id</td>
<td>
$surname</td>
<td>
$name</td>
<td>
$patronymic</td>
<td>
$post</td>
<td>
$pol_t</td>
</tr>"
;
}
}

О блин..а я даж не подумал так сделать...спасибо огромное.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.