Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrar registros con un buble

Estas en el tema de Mostrar registros con un buble en el foro de PHP en Foros del Web. Buenas, estoy intentando mostrar los registros de una fila de una tabla en la base de datos, y por algún motivo el bucle se hace ...
  #1 (permalink)  
Antiguo 08/10/2014, 03:09
 
Fecha de Ingreso: mayo-2014
Mensajes: 23
Antigüedad: 10 años
Puntos: 0
Mostrar registros con un buble

Buenas, estoy intentando mostrar los registros de una fila de una tabla en la base de datos, y por algún motivo el bucle se hace infinito y no termina nunca de cargar la página hasta que termina saliendo "Fatal error: Maximum execution time of 30 seconds exceeded". El código en sí es el siguiente:

Código PHP:
<?php            for($i 1$i <= 20$i++){
                    if(
strstr($row['youtube'.$i.''],'width="560"')){
                        
$remplazo.$i=str_replace('width="560"''width="300"'$row['youtube'.$i.'']);
                    }
                    else{
                        
$remplazo.$i=str_replace('width="420"''width="300"'$row['youtube'.$i.'']);
                    }
                    
$remplazo.$i=str_replace('height="315"''height="180"'$remplazo.$i);
                    
                    if(
$i == 0){?>
                        <div class="capa_video" style="float:right;">
                            <div style='float:left;'>
                                <?php
                                
echo $remplazo.$i;
                                
?>                
                            </div>
                        </div> 
                <?php    
                    
}
                    else{
?>
                        <div class="capa_video">
                            <div style='float:left;'>
                                <?php
                                
echo $remplazo.$i;
                                
?>                
                            </div>
                        </div>
                      <?php }
                }
Lo que quiero es mostrar en la página 20 vídeos, en 2 columnas, que ya están insertados en la base de datos mediante iframes. No hace falta fijarse en las funciones que uso, son independientes, simplemente uso la función strstr para buscar una cadena de texto y luego la función str_replace para sustituir una cadena de texto. Después si $i es par hago que el vídeo se alinee a la derecha, si no, a la izquierda.

Las consultas a la base de datos no las pongo pero están bien hechas porque hice pruebas, así que ahí no está el fallo.

A mí me da que el fallo va a estar en "$remplazo.$i=", pero no estoy seguro. Si alguien sabe cuál puede ser el problema y lo expone, lo agradecería.

Última edición por ruben_077; 08/10/2014 a las 03:20
  #2 (permalink)  
Antiguo 08/10/2014, 05:37
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Mostrar registros con un buble

Código PHP:
Ver original
  1. <?php            
  2.  for($i = 1; $i <= 20; $i++){
  3.    if(strstr($row['youtube'.$i.''],'width="560"')){
  4.      // Error
  5.      $remplazo.$i=str_replace('width="560"', 'width="300"', $row['youtube'.$i.'']);
  6.    }else{
  7.      //Error
  8.      $remplazo.$i=str_replace('width="420"', 'width="300"', $row['youtube'.$i.'']);
  9.    }
  10.    //2 Error es
  11.    $remplazo.$i=str_replace('height="315"', 'height="180"', $remplazo.$i);
  12.    if($i % 2 == 0){?>
  13.     <div class="capa_video" style="float:right;">
  14.       <div style='float:left;'>
  15.       <?php echo $remplazo.$i;?>                
  16.       </div>
  17.     </div>
  18.       <?php }else{?>
  19.     <div class="capa_video">
  20.       <div style='float:left;'>
  21.         <?php echo $remplazo.$i; ?>                
  22.       </div>
  23.     </div>
  24.     <?php }
  25.       } ?>

$row['youtube'.$i.''] esto no se acaba de entender, recibes 20 yutubes en un solo row??? Si es así la solucion es reemplzar sobre la misma variable


Código PHP:
Ver original
  1. <?php            
  2.  for($i = 1; $i <= 20; $i++){
  3.    if(strstr($row['youtube'.$i.''],'width="560"')){
  4.      $row['youtube'.$i.'']=str_replace('width="560"', 'width="300"', $row['youtube'.$i.'']);
  5.    }else{
  6.      $row['youtube'.$i.'']=str_replace('width="420"', 'width="300"', $row['youtube'.$i.'']);
  7.    }
  8.    $row['youtube'.$i.'']=str_replace('height="315"', 'height="180"', $remplazo.$i);
  9.    if($i % 2 == 0){?>
  10.     <div class="capa_video" style="float:right;">
  11.       <div style='float:left;'>
  12.       <?php echo $row['youtube'.$i.''];?>                
  13.       </div>
  14.     </div>
  15.       <?php }else{?>
  16.     <div class="capa_video">
  17.       <div style='float:left;'>
  18.         <?php echo $row['youtube'.$i.'']; ?>                
  19.       </div>
  20.     </div>
  21.     <?php }
  22.       } ?>
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 08/10/2014, 05:48
 
Fecha de Ingreso: mayo-2014
Mensajes: 23
Antigüedad: 10 años
Puntos: 0
Respuesta: Mostrar registros con un buble

Vale, el problema es que hacía algo raro cuando ponía las 2 variables juntas, usando la misma siempre funciona perfecto. Gracias .

Etiquetas: registro, registros, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:41.