Seite wird zur Zeit überarbeitet

19. Juli 2017

PHP Gruppenbruch simple

  <?php
  /**
   * @author kaminbausatz
   * 2017-07-19
   */
  class myTable extends RecursiveIteratorIterator {
      public $myList = '';
      public $spaltenZaehler = 1;
      public $spaltenSpieler = 3;

      public function beginIteration(){
          $this->myList .= '<table>';
      }
      public function endIteration(){
          $this->myList .= '</table>';
      }
      public function beginChildren() {
           if ($this->getDepth()==2)
              $this->spaltenZaehler=1;  
      }   
      public function endChildren() {
            if ($this->getDepth()==2){
              $this->myList.= str_repeat('<td>', $this->spaltenSpieler-$this->spaltenZaehler+1);
           }    
      }
      public function nextElement() {
          if ($this->getDepth()==0)
              $this->myList .= '<tr><td colspan="'.($this->spaltenSpieler+1).'" class="fat">'.$this->key();

          if ($this->getDepth()==1)
              $this->myList .= '<tr><td>'.$this->key();    

          if ($this->getDepth()==2){
              $this->myList .= '<td>'.$this->current(); 
              if ($this->spaltenZaehler%$this->spaltenSpieler==0){
                  $this->spaltenZaehler=0;
                  $this->myList .= '<tr><td>';
                 }
              $this->spaltenZaehler++;
           }          
      }
  } 
  $memDB = new PDO('sqlite::memory:');
  $memDB->exec("CREATE TABLE IF NOT EXISTS spieler (
                      id INTEGER PRIMARY KEY, 
                      ort TEXT, 
                      team TEXT, 
                      spieler TEXT)");
  $memDB->exec(
      "INSERT INTO spieler (ort, team, spieler) VALUES ('Berlin', 'Team A', 'Thomas');".
      "INSERT INTO spieler (ort, team, spieler) VALUES ('Hamburg', 'Team B', 'Peter');".
      "INSERT INTO spieler (ort, team, spieler) VALUES ('Hamburg', 'Team B', 'Hans');".
      "INSERT INTO spieler (ort, team, spieler) VALUES ('Hamburg', 'Team B', 'Andreas');".
      "INSERT INTO spieler (ort, team, spieler) VALUES ('Hamburg', 'Team C', 'Hans');".
      "INSERT INTO spieler (ort, team, spieler) VALUES ('Frankfurt', 'Team D', 'Ben');".
      "INSERT INTO spieler (ort, team, spieler) VALUES ('Frankfurt', 'Team D', 'Paul');".
      "INSERT INTO spieler (ort, team, spieler) VALUES ('Frankfurt', 'Team D', 'Jonas');".
      "INSERT INTO spieler (ort, team, spieler) VALUES ('Frankfurt', 'Team D', 'Felix');".
      "INSERT INTO spieler (ort, team, spieler) VALUES ('Frankfurt', 'Team D', 'Emil');".
      "INSERT INTO spieler (ort, team, spieler) VALUES ('Frankfurt', 'Team D', 'Max');"
  );

  $result = $memDB->query('SELECT * FROM spieler ORDER BY team, spieler');

  foreach($result as $row){
     $tableArray[$row['ort']][$row['team']][] = $row['spieler'];
  }
  $myTableHTML = new myTable(new RecursiveArrayIterator($tableArray), RecursiveIteratorIterator::SELF_FIRST);  
  foreach($myTableHTML as $key => $list_element);
  ?>
  <!doctype html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
    table {
      border-collapse: collapse;
    }
    table td {
      border: 1px solid #ccc; 
    }
    .fat{
      font-weight:bold;
    }
    </style>
  </head>
  <body>
  <?php echo $myTableHTML->myList; ?>
  </body>
  </html>


Frank Wisniewski Lohmühlenstraße 2 53518 Adenau
Telefon: 02691 / 548 E-Mail: info@w-web.de