Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrar variable del conteo

Estas en el tema de Mostrar variable del conteo en el foro de PHP en Foros del Web. Hago un conteo de registros y al hacer un echo me muestra el calculo correcto, pero no me lo transporta a la plantilla, dejo el ...
  #1 (permalink)  
Antiguo 29/01/2013, 03:12
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 14 años, 5 meses
Puntos: 4
Mostrar variable del conteo

Hago un conteo de registros y al hacer un echo me muestra el calculo correcto, pero no me lo transporta a la plantilla, dejo el codigo de los archivos que intervienen.

Archivo funciones.php
Código PHP:
Ver original
  1. <?php
  2. function mostrarTemplate($tema, $variables)
  3. {
  4.     //var_dump($variables);
  5.     extract($variables);
  6.     eval("?>".$tema."<?");
  7. }
  8.  
  9. function parsearTags($mensaje)
  10. {
  11.     $mensaje = str_replace("[citar]", "<blockquote><hr width='100%' size='2'>", $mensaje);
  12.     $mensaje = str_replace("[/citar]", "<hr width='100%' size='2'></blockquote>", $mensaje);
  13.     return $mensaje;
  14. }
  15. ?>

Archivo inicio.php
Código PHP:
Ver original
  1. <?php
  2. /* Pedimos todos los temas iniciales (identificador==0)
  3. * y los ordenamos por ult_respuesta */
  4. $sql = "SELECT id, foro.idusuario, titulo, fecha, nick FROM foro INNER JOIN usuarios ON usuarios.idusuario=foro.idusuario";
  5. $rs = mysql_query($sql, $conexion);
  6. if(mysql_num_rows($rs)>0)
  7. {
  8.         $numfila=0;
  9.        
  10.     // Leemos el contenido de la plantilla de temas
  11.     $template = implode("", file("templates/cuerpo.php"));
  12.     include('templates/titulos.tpl');
  13.     while($row = mysql_fetch_assoc($rs))
  14.     {
  15.         // primero conectamos siempre a la base de datos mysql
  16.         $id=$row['id'];
  17.         $sql2 = "SELECT identificador FROM respuestas WHERE identificador='$id'";  // sentencia sql
  18.         $conteo = mysql_query($sql2, $conexion);
  19.         $nrespuestas = mysql_num_rows($conteo); // obtenemos el número de filas
  20.                 $numfila++;
  21.         $color=($numfila%2 == 0 ?"#F6F6F6":"#CCC");
  22.         $row["color"] = $color;
  23.         mostrarTemplate($template, $row);
  24.     }
  25. }
  26. ?>

Archivo cuerpo.php
Código PHP:
Ver original
  1. <div class="titulos" style="background-color:<?=$color?>">
  2.             <div class="titulo"><a href="foro.php?id=<?=$id?>"><?=$titulo?></a></div>
  3.             <div class="autor"><font size="-2">Por <b><?=$nick?></b> el <?=$fecha?></font></div>
  4.             <div class="respuestas"><?=$nrespuestas?></div>
  5.            
  6. </div>

Gracias de antemano.
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #2 (permalink)  
Antiguo 29/01/2013, 07:49
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 11 años, 4 meses
Puntos: 1532
Respuesta: Mostrar variable del conteo

según lo que veo usas esto para llamar a la plantilla:
Código PHP:
Ver original
  1. mostrarTemplate($template, $row);

sólo template y row son pasadas, ¿no se supone que debes de pasar algo más?

favor especifique si usa algún FW, o es una implementación MVC propia
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 29/01/2013, 13:53
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: Mostrar variable del conteo

Cita:
Iniciado por maycolalvarez Ver Mensaje
favor especifique si usa algún FW, o es una implementación MVC propia
No entiendo lo de FW y MVC, los archivos que intervienen son los expuestos, a parte el que contiene la conexion a la base de datos.
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #4 (permalink)  
Antiguo 29/01/2013, 13:57
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 11 años, 4 meses
Puntos: 1532
Respuesta: Mostrar variable del conteo

FW = Framework
MVC = Model View Controller

si usa un sistema de plantillas, lo lógico es pasar a ésta todos los datos necesarios, cosa que no veo en su caso, ni entiendo porqué usa eval
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 29/01/2013, 14:10
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: Mostrar variable del conteo

eval es lo que traspasa los datos a los archivos de la plantilla. La verdad que empece con un script que he ido retocando, pero el dato del conteo no consigo que lo pase.
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #6 (permalink)  
Antiguo 29/01/2013, 14:17
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 11 años, 4 meses
Puntos: 1532
Respuesta: Mostrar variable del conteo

veo que usas extract, en ese caso con un simple include puedes llamar a la plantilla, las variables declaradas antes serán vistas por la plantilla, no veo necesidad de usar eval si la plantilla es .php
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 29/01/2013, 14:21
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: Mostrar variable del conteo

Cita:
Iniciado por maycolalvarez Ver Mensaje
veo que usas extract, en ese caso con un simple include puedes llamar a la plantilla, las variables declaradas antes serán vistas por la plantilla, no veo necesidad de usar eval si la plantilla es .php
lo siento pero esta respuesta no me aclara nada, no entiendo lo que me dices ante la duda, eso ya funciona, lo que no me funciona es que $nrespuestas no me aparece en el archivo de la plantilla.
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #8 (permalink)  
Antiguo 29/01/2013, 14:31
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: Mostrar variable del conteo

Solucionado

En el archivo funciones.php modifico la linea 2 de la siguiente manera:

Código PHP:
Ver original
  1. function mostrarTemplate($tema, $variables)

Código PHP:
Ver original
  1. function mostrarTemplate($tema, $nrespuestas, $variables)

y en el archivo inicio.php

Código PHP:
Ver original
  1. mostrarTemplate($template, $row);

Código PHP:
Ver original
  1. mostrarTemplate($template, $nrespuestas, $row);

;)
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)

Etiquetas: conteo, mysql, registro, select, sql, usuarios, variables
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 00:09.