Foros del Web » Programando para Internet » PHP »

Dificultados al imprimir información con while desde una variable

Estas en el tema de Dificultados al imprimir información con while desde una variable en el foro de PHP en Foros del Web. Tengo el siguiente problema. Necesito sacar información de un bucle con while. El bucle me muestra todos los post de un blog. Pero resulta que ...
  #1 (permalink)  
Antiguo 13/09/2010, 12:19
 
Fecha de Ingreso: julio-2009
Mensajes: 172
Antigüedad: 14 años, 9 meses
Puntos: 3
Dificultados al imprimir información con while desde una variable

Tengo el siguiente problema.

Necesito sacar información de un bucle con while.
El bucle me muestra todos los post de un blog.

Pero resulta que necesito sacar la info del bucle con una variable pero al sacarlo con una variable solo me muestra el ultimo post. Voy a poner aquí un ejemplo:

Código:
if($CAT){
//
//
}else{
	$caption='Peliculas'; // Muestra el titulo

	$sql_peliculas='select * from '.$mySQLprefix.'peliculas';
	$query_peliculas=mysql_query($sql_peliculas);

	while($result_peliculas=mysql_fetch_array($query_peliculas)){
		
                $texto=$result_peliculas['titulo'];
	
       }
}

$ns->tablerender($caption, $texto, '');
Es necesario sacarlo con la variable ya que de no ser asi, no se imprime correctamente dentro del tema de mi CMS.

Alguna idea de como puedo solucionarlo?
  #2 (permalink)  
Antiguo 13/09/2010, 12:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dificultados al imprimir información con while desde una variable

es obvio, ya que en cada iteración del while() asignas el resultado a $texto y por ende sobreescribes dicha variable una y otra ves...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/09/2010, 12:40
 
Fecha de Ingreso: julio-2009
Mensajes: 172
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Dificultados al imprimir información con while desde una variable

Si. Es obvio. Pero no me ayuda tu comentario.
  #4 (permalink)  
Antiguo 13/09/2010, 13:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dificultados al imprimir información con while desde una variable

Cita:
Iniciado por josico Ver Mensaje
Si. Es obvio. Pero no me ayuda tu comentario.
pues entonces mueve tu instrucción dentro del while(), así en cada iteración pasas el valor directamente...
Código PHP:
while (/* ... */)
{
  
$ns->tablerender($caption$texto'');

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 13/09/2010, 13:38
 
Fecha de Ingreso: julio-2009
Mensajes: 172
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Dificultados al imprimir información con while desde una variable

Eso no puedo hacerlo si no los marcos de la página se repiten. la variable $ns tiene que estar fuera de ay que quiera sacarlo con una variable.

¿Hay alguna forma?

Gracias por tu respuesta.
  #6 (permalink)  
Antiguo 13/09/2010, 13:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dificultados al imprimir información con while desde una variable

mira, aquí el problema es tu planteamiento... me explico:

en cada vuelva del ciclo while() tienes que hacer algo con la variable $texto, ¿que?

si nos explicas con detalle lo que planeas hacer podríamos orientarte mejor, ya que a simple vista parece que no comprendes el uso de los bucles... pues!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 13/09/2010, 13:44
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Dificultados al imprimir información con while desde una variable

Cita:
$ns->tablerender($caption, $texto, '');
aca $texto puede ser un array?? xq de la manera que lo haces simpre sustituiras al menos que coloques a texto como array pero noc si sea lo q necesitas
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #8 (permalink)  
Antiguo 13/09/2010, 14:07
 
Fecha de Ingreso: julio-2009
Mensajes: 172
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Dificultados al imprimir información con while desde una variable

Tenéis razón. Voy a explicarlo más detalladamente.

Yo he creado un menú y una página en el CMS en el que baso mi web (e107) desde donde aparecen películas que yo introduzco a una tabla.

Resulta que para que el texto, tanto en la página como en el menú aparezca correctamente integrado al tema hay que usar esto:

Código:
$ns->tablerender($titulo, $texto, '')
Donde la variable titulo refiere al titulo de la página o menú y la variable texto refiere al contenido de la página o menú.

Todo lo que salga fuera de estas dos variables no sera correctamente introducido por lo que aparecerá en el caso de los menús fuera de la columna y en caso de ser una página (dependiendo del tema) en el head o footer.

Por lo tanto si yo creo un menú o una página asi:

Código:
<?php

echo '<h4>Peliculas</h4><br /><hr /><p>Texto</p>';

?>
No sera correctamente interpretado por el CMS.

Esta es la forma correcta:

Código:
<?php

$titulo='Peliculas';
$texto='Texto';

$ns->tablerender($titulo, $texto, '');

?>
Todo lo que tenga que aparecer dentro de la pagina o menu, debe ser insertado mediante la variable $texto.

De ser una web programada sobre un tema CSS, con esto sobraria:
Código:
<?php

while($result...){
?>
<div>
<?php echo$resulr... ?>
</div>
<?php
}

?>
Pero estoy obligado a hacerlo de la siguiente forma

Código:
<?php

$titulo='Peliculas';

while($result...){
  $campo1=$result['campo1'];
 $campo2=$result['campo2'];
 $campo3=$result['campo3'];
}

$texto='<div><table>...'.$campo1.'</table></div><div>'.$campo2.'</div>';

$ns->tablerender($titulo, $texto, '');

?>


Si como me has por supuesto antes inserto la variable $ns dentro del while, repite la página y no el contenido en el bucle. Por eso debo dejarlo fuera.

Si hay otra forma más fácil o eficaz o es que realmente se hace con otras herramienta, es lo que necesito averiguar.

Gracias por vuestras respuestas.
  #9 (permalink)  
Antiguo 13/09/2010, 14:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dificultados al imprimir información con while desde una variable

entonces la cuestión sería... ¿puedes concatenar el contenido de $texto en cada vuelta del ciclo while()?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 13/09/2010, 14:29
 
Fecha de Ingreso: julio-2009
Mensajes: 172
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Dificultados al imprimir información con while desde una variable

Yo puedo concatenar campos para introducirlos a la variable texto.

Pero me he desorientado con concatenarlo en cada vuelta.
  #11 (permalink)  
Antiguo 13/09/2010, 14:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dificultados al imprimir información con while desde una variable

algo así...
Código PHP:
$foo '';
while (
/* ... */)
{
  
$foo .= $bar;

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 13/09/2010, 14:44
 
Fecha de Ingreso: julio-2009
Mensajes: 172
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Dificultados al imprimir información con while desde una variable

Esto es nuevo para mi. No entiendo por que pones la variable $foo=''; antes que while

Seria algo asi:

Código:
$texto='';

	$sql_peliculas='select * from '.$mySQLprefix.'peliculas';
	$query_peliculas=mysql_query($sql_peliculas);
	while($result_peliculas=mysql_fetch_array($query_peliculas)){

	$titulo=$result_peliculas['titulo'];
	$texto='
	<a href="?pelicula='.$result_peliculas["url"].'" rel="shadowbox"><img src="'.$result_peliculas["img"].'" width="130" height="220" ></a> http://www.josico.es
	';
	}
$ns->tablerender($titulo, $texto, '');
Como se aplicaria a este ejemplo?
  #13 (permalink)  
Antiguo 13/09/2010, 15:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dificultados al imprimir información con while desde una variable

debes usar el sentido común amigo...

$foo es solo un ejemplo, pues... y bueno, se hace antes porque según dicta el flujo de un programa primero hay que definir las variables antes de usarlas...

Código PHP:
$texto '';
while (
/* ... */)
{
  
$texto .= '<a/>mi texto';

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 13/09/2010, 17:00
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: Dificultados al imprimir información con while desde una variable

Lo que el quiere hacer es algo parecido a esto o ¿me equivoco?:
Código PHP:
Ver original
  1. if($CAT){
  2. //
  3. //
  4. }else{
  5.     $caption='Peliculas'; // Muestra el titulo
  6.  
  7.     $sql_peliculas='select * from '.$mySQLprefix.'peliculas';
  8.     $query_peliculas=mysql_query($sql_peliculas);
  9.  
  10.     while($result_peliculas=mysql_fetch_array($query_peliculas)){
  11.        
  12.                 $texto=$result_peliculas['titulo'];
  13.                 echo $texto;
  14.    
  15.        }
  16. }
  17.  
  18. //$ns->tablerender($caption, $texto, '');
  #15 (permalink)  
Antiguo 13/09/2010, 17:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dificultados al imprimir información con while desde una variable

Cita:
Iniciado por rickyper Ver Mensaje
¿me equivoco?
solo un poco...

el punto es que se debe concatenar la variable consecutivamente, cosa que siguen omitiendo...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 14/09/2010, 05:47
 
Fecha de Ingreso: julio-2009
Mensajes: 172
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Dificultados al imprimir información con while desde una variable

Cita:
Iniciado por pateketrueke Ver Mensaje
solo un poco...

el punto es que se debe concatenar la variable consecutivamente, cosa que siguen omitiendo...
La verdad que me vendria bien un ejemplo para enterlo por que ahora mismo no te sigo
  #17 (permalink)  
Antiguo 14/09/2010, 09:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Dificultados al imprimir información con while desde una variable

Lee el Mensaje 11 te dejo un ejemplo muy claro.
  #18 (permalink)  
Antiguo 14/09/2010, 15:30
 
Fecha de Ingreso: julio-2009
Mensajes: 172
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Dificultados al imprimir información con while desde una variable

¿Cual mensaje?
  #19 (permalink)  
Antiguo 14/09/2010, 15:42
 
Fecha de Ingreso: septiembre-2010
Mensajes: 5
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Dificultados al imprimir información con while desde una variable

cambia la variable y pon lo siguiente

$texto.=

recuerda el punto antes del igual, eso hace que agrege el texto a la variable ejemplo

Código PHP:
$texto.= "Dexter Morgan ";
$texto.= "Asesino en Serie";

echo 
$texto


esto devolveria Dexter Morgan Asesino en Serie...


Buena suerte..
  #20 (permalink)  
Antiguo 14/09/2010, 16:52
 
Fecha de Ingreso: julio-2009
Mensajes: 172
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Dificultados al imprimir información con while desde una variable

No me sirve por que me devuelve el mismo contenido.

Voy a intentar replantearlo de otra forma.

Yo creo un tema en css. La mitad lo introduzco en la variable head y la otra mitad en la varaiable footer y lo guardo en el archivo tema.

Código:
<?php
$header='<div>/////</div><div class="contenido">';

$footer ='</div><div class="columna_derecha>Contenido de la columna</div>"';
?>
De esta forma solo tengo que introducir las variable head antes del contenido y footer después del contenido

La columna derecha de mi tema esta dentro de la variable footer. (Como se puede apreciar en el div) Y necesariamente (y no puede ser de otra forma en mi caso) debe estar ay.

Yo creo una pequeña aplicación por ejemplo últimos comentarios. Y lo guardo en el archivo de comentarios.php donde programo lo siguiente.

Código:
<?php

    $sql_comentario='select * from comentario';
    $query_comentario=mysql_query($sql_comentario);
    while($result_comentario=mysql_fetch_array($query_comentario)){
			
			$titulo_comentario=$result_comentario['titulo'];
			$texto_comentario=$result_comentario['texto'];
			
			$ULTIMOS_COMENTARIOS='<h4>'.$titulo_comentario.'</h4><hr /><p>'.$texto_comentario.'</p>';
    
    }
?>
Ahora yo vuelvo al archivo donde tengo las variables de mi tema y he puesto esto

Código:
require("comentarios.php");

$header='<div>/////</div><div class="contenido">';

$footer ='</div><div class="columna_derecha>'.$ULTIMOS_COMENTARIOS.'</div>"';
La idea es que aparezcan por ejemplo todos los comentarios ya sea 1 o 200. Pero solo me muestra o bien el último o bien el primero (según configure el orden de campo)

Entonces, limitado a estas circunstancias ¿abría alguna manera de que en la columna derecha de mi tema aparezcan todos los comentarios?
  #21 (permalink)  
Antiguo 14/09/2010, 16:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dificultados al imprimir información con while desde una variable

por favor amigo, es mas grande que un elefante y no lo ves??!!

Código PHP:
// MAL
$ULTIMOS_COMENTARIOS='<h4>'.$titulo_comentario.'</h4><hr /><p>'.$texto_comentario.'</p>';

// BIEN
$ULTIMOS_COMENTARIOS .= '<h4>'.$titulo_comentario.'</h4><hr /><p>'.$texto_comentario.'</p>'
no se si notas el operador .= que es un punto y un signo de igual, ese operador es el de concatenación....

si lo aprendieras a usar te aseguro que ya tendrías resulto tu problema!!

y por favor, no olvides leer el manual alguna ves en tu vida, dedicar un tiempo al estudio y reflexión sobre todo... el proceso de concatenación es algo muy básico, por lo tanto es obligatorio que lo aprendas... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #22 (permalink)  
Antiguo 14/09/2010, 17:36
 
Fecha de Ingreso: julio-2009
Mensajes: 172
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Dificultados al imprimir información con while desde una variable

Tomo nota. Lo probe y funciono.

Donde puedo documentarme más sobre el tema. Agradeceria manuales concretos ya que para mi todavia esto es demasiado grande.

Gracias por vuestro interes ;)

Etiquetas: 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 20:40.