Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как сделать тоже самое ток на php?
Форумы портала PHP.SU » » Вопросы новичков » Как сделать тоже самое ток на php?

Страниц (1): [1]
 

1. lix4000 - 13 Февраля, 2018 - 15:24:07 - перейти к сообщению
Как сделать код на С# только на PHP

[code=html


public string GetHTML()
{
string html, row1 = "", row2 = "";
html = "<table border=1 itemprop=\"graduatejob\"><thead>";

List<string> Years = new List<string> {};
List<string> Collumns = new List<string> {};

// Копируем столбец God1
foreach (graduateJob self in this.graduateJobBindingList)
{
Years.Add(self.God1);
}
// Сортируем по возрастанию
Years.Sort();
// Определяем максимальный год в исходном массиве данных
int lastYearValue = Convert.ToInt32(Years.Max());
// Формирем массив колонок, соответствующих году,
// отбирая уникальные позици, и фильтруя список по последним трем годам
Collumns.AddRange(Years.Distinct().Where(p => p.CompareTo(Convert.ToString(lastYearValue - 3)) == 1));



// Заполняем шапку таблицы
foreach (string columnYear in Collumns) {
row1 += "<td colspan=2>Год " + columnYear + "</td>";
row2 += "<td>Кол-во выпускников</td><td>Кол-во трудоустроенных выпускников</td>";
}
html += "<tr><td rowspan=2>Код</td><td rowspan=2>Направление подготовки (специальности)</td>" + row1 + "</tr><tr>" + row2 + "</tr></thead><tbody>";

// формируем новый список на основании имеющегося
IEnumerable<graduateJob> sortedRepo = this.graduateJobBindingList
.Where(z => z.God1.CompareTo(Convert.ToString(lastYearValue - 3)) == 1) // фильтруем по последним трем годам
.OrderBy(s => s.God1) // сортируем по году
.OrderBy(p => p.EduName); // затем по наименованию специиальности

int nextColumn = 0, delta, currentCollumn, i;
string previousName = sortedRepo.First().EduName;
html += "<tr><td>" + sortedRepo.First().EduCode + "</td><td>" + sortedRepo.First().EduName + "</td>";
// заливаем тело таблицы
foreach (graduateJob self in sortedRepo)
{
// Для новой специальности отбиваем новую строку
if (previousName != self.EduName) { // проеверяем не закончилась ли инфа по текущей специальности
html += "</tr><tr><td>" + self.EduCode + "</td><td>" + self.EduName + "</td>"; // если да, отбиваем новую строку и вносим инфу по следующей
nextColumn = 0; // переводим курсор колонки на первую позицию
}
previousName = self.EduName; // фиксируем текущую специальность
currentCollumn = Collumns.FindIndex(p => p == self.God1); // Ищем позицию колонки для текущей строки по году
delta = currentCollumn - nextColumn; // проверяем, соответствует ли год текущей строки году текущей колонки
nextColumn++; // смещаем курсор на следующую колонку
// Заполняем пустоты
for (i = 0; i < delta; i++)
{
html += "<td>-</td><td>-</td>";
}
html += "<td>" + self.KollTrudvipsk1 + "</td><td>" + self.Kollvipsk1 + "</td>"; // Забиваем данные на пересечении года и специальности
}
html = html.Substring(0, html.Length - 5); // отсекаем последний <tr>
html += "</tbody>";
html += "</table>";


return html;


}


php][/code]




PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <!DOCTYPE html>
  4. <?PHP /*подключаем xml файл*/
  5.     $xml = simplexml_load_file('../data/t21graduatejob.xml');
  6.  
  7.         ?>
  8. <html>
  9.     <head>
  10.         <meta charset="UTF-8">
  11.         <title>Таблица(Шаблон представления информации о трудоустройстве выпускников образовательных организаций  за последние 3 года)</title>
  12.         <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
  13.     </head>
  14.     <body>
  15.         <div class="container-fluid">
  16.             <h1>Таблица(Шаблон представления информации о трудоустройстве выпускников образовательных организаций  за последние 3 года)</h1>
  17.             <table itemprop="eduOP" class="table table-bordered table-hover table-striped">
  18.                 <thead>
  19.                     <tr>
  20.                        <td rowspan=2>Код</td>
  21.                 <td rowspan=2>Направление подготовки (специальности)</td>
  22.                 <?PHP  
  23.                     $obj = $xml->graduateJobBindingList->graduateJob;
  24.                     echo "\t\t\t\t\t\t".'<td colspan=2> Год '.$obj->God.'</td>'.PHP_EOL;
  25.                     echo "\t\t\t\t\t\t".'<td colspan=2> Год '.$obj->God2.'</td>'.PHP_EOL;
  26.                     echo "\t\t\t\t\t\t".'<td colspan=2> Год '.$obj->God3.'</td>'.PHP_EOL;
  27.                 ?>
  28.                 </tr>
  29.                 <tr>
  30.                 <td>Кол-во выпускников</td>
  31.                 <td>Кол-во  трудоустроенных выпускников</td>
  32.                 <td>Кол-во выпускников</td>
  33.                 <td>Кол-во  трудоустроенных выпускников</td>
  34.                 <td>Кол-во выпускников</td>
  35.                 <td>Кол-во  трудоустроенных выпускников</td>
  36.                     </tr>
  37.                
  38.                 </thead>
  39.                 <tbody>
  40. <?PHP
  41.                        
  42.  
  43.                         foreach($xml->graduateJobBindingList->graduateJob as $curNode)
  44.                         {
  45.                             echo "\t\t\t\t\t".'<tr>'.PHP_EOL;
  46.                             echo "\t\t\t\t\t\t".'<td itemprop="eduCode" class="text-center">'.$curNode->EduCode."</td>".PHP_EOL;
  47.                             echo "\t\t\t\t\t\t".'<td itemprop="eduName">'.$curNode->EduName.'</td>'.PHP_EOL;
  48.                          
  49.                            // echo "\t\t\t\t\t\t".'<td itemprop="god1">'.$curNode->God1.'</td>'.PHP_EOL;
  50.                             echo "\t\t\t\t\t\t".'<td itemprop="kollvipsk1">'.$curNode->Kollvipusknikov.'</td>'.PHP_EOL;
  51.                             echo "\t\t\t\t\t\t".'<td itemprop="kollTrudvipsk1">'.$curNode->Kolltrudoustroinihvipsknikov.'</td>'.PHP_EOL;
  52.                            
  53.                             //echo "\t\t\t\t\t\t".'<td itemprop="god2">'.$curNode->God2.'</td>'.PHP_EOL;
  54.                             echo "\t\t\t\t\t\t".'<td itemprop="kollvipsk2">'.$curNode->Kollvipusknikov2.'</td>'.PHP_EOL;
  55.                             echo "\t\t\t\t\t\t".'<td itemprop="kollTrudvipsk2">'.$curNode->Kolltrudoustroinihvipsknikov2.'</td>'.PHP_EOL;
  56.                            
  57.                            // echo "\t\t\t\t\t\t".'<td itemprop="god1">'.$curNode->God3.'</td>'.PHP_EOL;
  58.                             echo "\t\t\t\t\t\t".'<td itemprop="kollvipsk1">'.$curNode->Kollvipusknikov3.'</td>'.PHP_EOL;
  59.                             echo "\t\t\t\t\t\t".'<td itemprop="kollTrudvipsk1">'.$curNode->Kolltrudoustroinihvipsknikov.'</td>'.PHP_EOL;
  60.                            
  61.                            
  62.                            
  63.                             echo "\t\t\t\t\t".'</tr>'.PHP_EOL;
  64.                         }
  65.                     ?>
  66.                 </tbody>
  67.             </table>
  68.         </div>      
  69.     </body>
  70. </html>
  71.  
  72.  

 

Powered by ExBB FM 1.0 RC1