Вопрос вот на какую тему.
есть статический метод 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) |
О блин..а я даж не подумал так сделать...спасибо огромное.