entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

mostrar calendario de partidos en php con tablas segun jornada

Buenas, tengo en una base de datos todos los partidos de X liga y necesito mostrarlos todos en diferentes tablas según la jornada, es decir,
tengo una tabla que sería:

                 Jornada 1(tabla1)                                    Jornada 2(tabla2)
Escudo (nombre) (resultado) (nombre2) Escudo 2          Escudo nombre resultado nombre2 Escudo2
...... Así sucesivamente pero con todos los partidos

La tabla tiene realmente una fila pero dentro de cada celda 3 elementos.
Lo que necesito conseguir es que si obtiene un dato y la jornada es 2 en lugar de 1 me cree otra tabla al lado igual que la anterior pero con jornada 2 y muestre todos los partidos de jornada 2. No sé si me he explicado bien.

Aquí os dejo lo que tengo actualmente:

<div class="row">
        <div class="col-lg-4">
          <h2>Partidos</h2>
          <div class="table-responsive">
              <table class="table table-bordered">
                <thead>
                    <tr class="darkgreenbox">
                        <th style="text-align:center;">Jornada <?php echo $jornada; ?></th>
                    </tr>
                </thead>

                <?php           
                    foreach($partidos as $partido) {
                 ?>
                    <tbody>
                        <tr>
                            <td align="center">
                            <?php 
                                $equipo = $equipoController->buscarEquipoPorId($partido->getLocal());
                            ?>
                            <span class="pull-left">
                            <img alt="Escudo del <?php echo $equipo->getNombre()?>" title="Escudo del <?php echo $equipo->getNombre()?>" src="resources/img/escudos/<?php echo $equipo->getId()?>.png" width="35" height="25">
                                <?php 
                                    echo $equipo->getNombre();
                                ?>
                            </span>
                            <?php 
                                $equipo = $equipoController->buscarEquipoPorId($partido->getVisitante());
                            ?>
                            <span class="pull-right">
                                <?php 
                                    echo $equipo->getNombre();
                                ?>
                            <img alt="Escudo del <?php echo $equipo->getNombre()?>" title="Escudo del <?php echo $equipo->getNombre()?>" src="resources/img/escudos/<?php echo $equipo->getId()?>.png" width="35" height="25">
                            </span>
                            <span class="label label-default pull-center">
                                <?php 
                                    if($partido->getResultado() == ""){
                                        $date = date_create($partido->getFecha());
                                        echo date_format($date, 'd-m-Y');
                                        $hora = $partido->getHora();
                                        echo " - ".$hora;
                                ?>
                                <?php
                                    } else {
                                        echo $partido->getResultado();
                                    }
                                ?>
                                <?php
                                    if ($partido->getJornada() == $jornada) {
                                        echo "Jornada ".$jornada;
                                    } else {
                                        $jornada = $jornada+$jornada;
                                    }

                                ?>
                            </span>
                            </td>
                        </tr>
                    </tbody>
                <?php               
                    }
                ?>
              </table>
            </div>
        </div>
</div>

En el foreach lo que hago es mostrar todos los partidos, pero sé que tengo que tener un while más arriba en donde la tabla o subir este foreach para que me vaya creando tablas según las jornadas.
Para facilitarlo creé una función que obtiene el nº de jornadas que tiene que tener la liga, pero realmente debería de ser el mismo foreach el que me muestre según las jornadas que obtenga.
¿Cómo puedo mejorar este código?
Gracias!

2 Respuestas

1voto

danielreales7 Puntos5380

He conseguido solucionarlo. Dejo el código por si alguien lo necesita:

<!-- Container -->
    <div class="container">
      <!-- Example row of columns -->
      <div class="row">
        <h2>Partidos</h2>
        <?php
            while($jornadaActual <= $jornadas){
        ?>
        <div class="col-lg-4">
          <div class="table-responsive">
              <table class="table table-bordered">
                <thead>
                    <tr class="darkgreenbox">
                        <th style="text-align:center;">Jornada <?php echo $jornadaActual; ?></th>
                    </tr>
                </thead>

                <?php
                foreach($partidos as $partido) {                
                    if ($partido->getJornada() == $jornadaActual) {
                 ?>
                <tbody>
                    <tr>
                        <td align="center">
                        <?php 
                            $equipo = $equipoController->buscarEquipoPorId($partido->getLocal());
                        ?>
                        <span class="pull-left">
                        <img alt="Escudo del <?php echo $equipo->getNombre()?>" title="Escudo del <?php echo $equipo->getNombre()?>" src="resources/img/escudos/<?php echo $equipo->getId()?>.png" width="35" height="25">
                            <?php 
                                echo $equipo->getNombre();
                            ?>
                        </span>
                        <?php 
                            $equipo = $equipoController->buscarEquipoPorId($partido->getVisitante());
                        ?>
                        <span class="pull-right">
                            <?php 
                                echo $equipo->getNombre();
                            ?>
                        <img alt="Escudo del <?php echo $equipo->getNombre()?>" title="Escudo del <?php echo $equipo->getNombre()?>" src="resources/img/escudos/<?php echo $equipo->getId()?>.png" width="35" height="25">
                        </span>
                        <span class="label label-default pull-center">
                            <?php 
                                if($partido->getResultado() == ""){
                                    $date = date_create($partido->getFecha());
                                    echo date_format($date, 'd-m-Y');
                                    $hora = $partido->getHora();
                                    echo " - ".$hora;
                            ?>
                            <?php
                                } else {
                                    echo $partido->getResultado();
                                }
                            ?>
                        </span>
                        </td>
                    </tr>
                </tbody>
                <?php
                    } else {
                        $jornadaActual++;
                ?>
               </table>
              </div>
             </div>
        <div class="col-lg-4">
          <div class="table-responsive">
              <table class="table table-bordered">
                <thead>
                    <tr class="darkgreenbox">
                        <th style="text-align:center;">Jornada <?php echo $jornadaActual; ?></th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td align="center">
                        <?php 
                            $equipo = $equipoController->buscarEquipoPorId($partido->getLocal());
                        ?>
                        <span class="pull-left">
                        <img alt="Escudo del <?php echo $equipo->getNombre()?>" title="Escudo del <?php echo $equipo->getNombre()?>" src="resources/img/escudos/<?php echo $equipo->getId()?>.png" width="35" height="25">
                            <?php 
                                echo $equipo->getNombre();
                            ?>
                        </span>
                        <?php 
                            $equipo = $equipoController->buscarEquipoPorId($partido->getVisitante());
                        ?>
                        <span class="pull-right">
                            <?php 
                                echo $equipo->getNombre();
                            ?>
                        <img alt="Escudo del <?php echo $equipo->getNombre()?>" title="Escudo del <?php echo $equipo->getNombre()?>" src="resources/img/escudos/<?php echo $equipo->getId()?>.png" width="35" height="25">
                        </span>
                        <span class="label label-default pull-center">
                            <?php 
                                if($partido->getResultado() == ""){
                                    $date = date_create($partido->getFecha());
                                    echo date_format($date, 'd-m-Y');
                                    $hora = $partido->getHora();
                                    echo " - ".$hora;
                            ?>
                            <?php
                                } else {
                                    echo $partido->getResultado();
                                }
                            ?>
                        </span>
                        </td>
                    </tr>
                </tbody>
                <?php
                    }
                ?>
            <?php
                }return false;//No vuelve a entrar en el bucle y sale
            ?>
              </table>
            </div>
        </div>
        <?php
            }
        ?>
      </div>
      <div class="col-lg-4">
         <div class="form-actions">
             <a class="btn" href="inicio.php">Volver</a>
         </div>
      </div>
    </div>

0voto

Peter comentado

Gracias por compartir la solución!

1voto

jj19958 Puntos4130

en el siguiente código funciona... e imprime hacia la derecha
|jornada 1|jornada 2|...|

<?php
             $tamaño = true;
             $con1 = 0;
             $con2 = 0;
             while ($tamaño = true) {
               if ($arreglocompleto[$con1][0] == null) {
                 $tamaño = false;
                 break;
               }
               if ($con1 == 0) {
                 $arreglojornada1[$con2][0] = $arreglocompleto[$con1][0]; //nombre del equipo
                 $arreglojornada1[$con2][1] = $arreglocompleto[$con1][1]; //resultado
                 $arreglojornada1[$con2][2] = $arreglocompleto[$con1][2]; //nombre del equipo 2

               }else {
                       if ($jornada1 === $arreglocompleto[$con1][2])
                       {
                         $con2++;
                         $arreglojornada1[$con2][0] = $arreglocompleto[$con1][0];
                         $arreglojornada1[$con2][1] = $arreglocompleto[$con1][1];
                         $arreglojornada1[$con2][2] = $arreglocompleto[$con1][2];
                       }

                   }
               $con23++;
             }

    $con35 = 0;
    $condicion11 = true;
    while ($condicion11=true) {
      if ($arreglotamaño[$con35][0]==null) {
        $condicion11=false;
        break;
      }

      ?>
      <tr>
          <td>
            <!--jornada 1-->
            <?php echo $arreglojornada1[$con35][0]; ?>
            <?php echo $arreglojornada1[$con35][1]; ?>
            <?php echo $arreglojornada1[$con35][2]; ?>
            </td>
          <!-- $jornada 2 -->
          <td>
            <?php  echo $arreglojornada2[$con35][0] ?>
            <?php  echo $arreglojornada2[$con35][1] ?>
            <?php  echo $arreglojornada2[$con35][2] ?>
          </td>
          <!-- $jornada 3 -->
          <td>
            <?php  $arreglojornada3[$con35][0] ?>
            <?php  $arreglojornada3[$con35][1] ?>
            <?php  $arreglojornada3[$con35][2] ?>
          </td>

      </tr>
      <?php
      $con41++;

  }

       ?>

1voto

danielreales7 comentado

Realmente eso me va añadiendo las jornadas en diferentes td. Lo que necesito es que por cada jornada me cree una tabla. Es decir, Jornada 1 y justamente debajo los partidos de Jornada 1, finaliza la jornada uno al lado me crea otra tablas nueva con jornada 2. ¿Entiendes lo que te quiero decir? Es un poco complicado de explicar pero te dejo un link para que lo veas:
[Calendario]
(https://resultados.as.com/resultados/futbol/primera/calendario)

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta