Foros del Web » Programando para Internet » PHP »

problema con echo de resultados de consulta

Estas en el tema de problema con echo de resultados de consulta en el foro de PHP en Foros del Web. Hola amig@s, he terminado un gestor que introduce los datos (texto y fotos) en una base de datos, y tengo un problemilla con la impresión: ...
  #1 (permalink)  
Antiguo 29/01/2007, 03:59
Avatar de codigoflecha  
Fecha de Ingreso: noviembre-2004
Mensajes: 325
Antigüedad: 19 años, 5 meses
Puntos: 3
problema con echo de resultados de consulta

Hola amig@s, he terminado un gestor que introduce los datos (texto y fotos) en una base de datos, y tengo un problemilla con la impresión:

//realizo la consulta y listo
Código:
 $sql = "SELECT * FROM tic_producto";
	$resultado = mysql_query($sql,$dbh);
    $num_resultados = mysql_num_rows($resultado);
    $num_productos = $num_resultados;
    $sql = "SELECT * FROM tic_producto order by `id` DESC";	
    $resultado = mysql_query($sql,$dbh);
    $resultado2 = $resultado;
     for($i = 1; $i <= $num_productos; $i++)
                {
                $row = mysql_fetch_array($resultado2);
                }
    $dir = "imagenes/";
imprimo los resultados:

Código:
<div class="producto1">
<img src="<? echo $dir.$row[imagen]; ?>" /> 

<div class="contenido_producto1">
<h6><? echo $row[titulo]; ?> </h6>
<p class="texto_productos">
<? echo $row[descripcion]; ?></p>
<p class="texto_productosprecio">Precio:<span class="texto_precios"> <? echo $row[precio]; ?> €</span></p>

</div>

</div>

<div class="producto2">
<img src="<? echo $dir.$row[imagen]; ?>" />


<div class="contenido_producto1">
<h6><? echo $row[titulo]; ?></h6>
<p class="texto_productos">
<? echo $row[descripcion]; ?></p>
<p class="texto_productosprecio">Precio:<span class="texto_precios"> <? echo $row[precio]; ?> €</span></p>
</div>

</div>
El problema viene que en el div productos 2 me imprime lo mismo que en el anterior, es decir, me imprime en pantalla la misma fila, no me pasa a la siguiente, creo que algo falla en el for que hago pero no consigo saber que.
Una ayudita please, tengo que entregar hoy el trabajo. please....
gracias
  #2 (permalink)  
Antiguo 29/01/2007, 04:04
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: problema con echo de resultados de consulta

Hola!
te quedaria mas limpio con un while:
Código PHP:
<?
$dir 
"imagenes/";
while(
$row mysql_fetch_array($resultado2)){
?>
<div class="producto1">
<img src="<? echo $dir.$row[imagen]; ?>" /> 

<div class="contenido_producto1">
<h6><? echo $row[titulo]; ?> </h6>
<p class="texto_productos">
<? echo $row[descripcion]; ?></p>
<p class="texto_productosprecio">Precio:<span class="texto_precios"> <? echo $row[precio]; ?> €</span></p>

</div>

</div>

<div class="producto2">
<img src="<? echo $dir.$row[imagen]; ?>" />


<div class="contenido_producto1">
<h6><? echo $row[titulo]; ?></h6>
<p class="texto_productos">
<? echo $row[descripcion]; ?></p>
<p class="texto_productosprecio">Precio:<span class="texto_precios"> <? echo $row[precio]; ?> €</span></p>
</div>
</div>
<?
}
?>
PD:en el caso de tu for es porque lo cierras antes, tienes q poner tus div dentro el bucle para q te vaya mostrando el resultado!
=mente los dos div te mostraran el mismo resultado xq estan dentro del mismo registro!

EDITADO:

con un booleano dentro de tu bucle ya te tendria q funcionar.
algo asi:
Código PHP:
<?
$x
=0;
$dir "imagenes/";
while(
$row mysql_fetch_array($resultado2)){
//con el if decidiremos donde entramos si en producto 1 o 2
if($x==0){
?>
<div class="producto1">
<img src="<? echo $dir.$row[imagen]; ?>" /> 
<div class="contenido_producto1">
<h6><? echo $row[titulo]; ?> </h6>
<p class="texto_productos">
<? echo $row[descripcion]; ?></p>
<p class="texto_productosprecio">Precio:<span class="texto_precios"> <? echo $row[precio]; ?> €</span></p>
</div>
<?
//asignamos x=1 para q no vuelva a entrar en el mismo y vaya al segundo producto
$x=1;
?>
</div>
<?
}else{
?>
<div class="producto2">
<img src="<? echo $dir.$row[imagen]; ?>" />
<div class="contenido_producto1">
<h6><? echo $row[titulo]; ?></h6>
<p class="texto_productos">
<? echo $row[descripcion]; ?></p>
<p class="texto_productosprecio">Precio:<span class="texto_precios"> <? echo $row[precio]; ?> €</span></p>
</div>
</div>
<?
//asignamos 0 para q entre en el primer producto
$x=0;
}
//fin IF
}//fin while
?>
saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 29/01/2007 a las 04:15
  #3 (permalink)  
Antiguo 29/01/2007, 05:57
Avatar de codigoflecha  
Fecha de Ingreso: noviembre-2004
Mensajes: 325
Antigüedad: 19 años, 5 meses
Puntos: 3
Re: problema con echo de resultados de consulta

Hola Sergi, antes de nada agradecerte muchísimo tu ayuda, te debo una. Verás he probado tu recomendación y me funciona perfectamente, como no cierro el for antes he probado con tu primera opción, aunque he tenido que modificar un poco el css ya que utilizaba en dos columnas un color de fondo distinto y alguna cosa más, te digo como ha quedado el code:
Cita:
<?php
include("header.php"); //cargamos doctype, title, etiquetas meta, logo y banner.
include("administrador/includes/conexion.php"); //conectamos con la base de datos
?>

<div class="left_contenedor">
<div class="left">
<ul>
<li><a href="quienes.html" id="quienes" title="QUIENES">QUIENES</a></li>
<li><a href="servicios.html" id="servicios" title="SERVICIOS">SERVICIOS</a></li>
<li><a href="beep.html" id="beep" title="BEEP">BEEP NEWS</a></li>
<li><a href="complementos.html" id="complementos" title="COMPLEMENTOS BEEP">COMPLEMENTOS</a></li>
<li><a href="franquicias.html" id="franquicias" title="FRANQUICIAS">FRANQUICIAS</a></li>
<li><a href="situacion.html" id="situacion" title="SITUACION">SITUACION</a></li>
<li><a href="informacion.html" id="info" title="INFORMACIÓN">INFORMACIÓN</a></li>
<li><a href="clientes.html" id="clientes" title="CLIENTES">CLIENTES</a></li>
</ul>
</div>

</div>

<?php
include("cabecera.php"); //cargamos cabecera flash.
?>


<div class="contenedor_index2">

<?php
$sql = "SELECT * FROM tic_producto";
$resultado = mysql_query($sql,$dbh);
$num_resultados = mysql_num_rows($resultado);
$num_productos = $num_resultados;
$sql = "SELECT * FROM tic_producto order by `id`";
$resultado = mysql_query($sql,$dbh);
$resultado2 = $resultado;
$dir = "imagenes/";
while($row = mysql_fetch_array($resultado2)){
?>



<div class="producto1">
<img src="<? echo $dir.$row[imagen]; ?>" />

<div class="contenido_producto1">
<h6><? echo $row[titulo]; ?> </h6>
<p class="texto_productos">
<? echo $row[descripcion]; ?></p>
<p class="texto_productosprecio">Precio:<span class="texto_precios"> <? echo $row[precio]; ?> €</span></p>

</div>


</div>

<?
}
?>






</div>



</div>

<?php
include("footer.php"); //cargamos pie de página (logos colaboradores, chica con portatil, copyright y enlaces.
?>
puedes ver el resultado aqui, para que te hagas una idea:
http://www.javierpastor.net/TIC

Ahora bien, si por ej. utilizo tu opción editada para mantener los productos en div diferentes (div=producto1, div=producto2...etc.) el problema es que me repetia el mismo producto 4 veces en una fila, otros 4 en otra, etc. es decir, 4 mismos productos en una fila, otros 4 mismos en otra, en vez de en una fila los 4 productos distintos.
no se si me entiendes, si no cuando lo veas , lo modifico y te muestro el code y el resultado de esta forma para que lo veas más claro.

De nuevo muy agradecido, hoy me he aclarado muchas cosas.
saludos desde Tenerife
Javi

Última edición por codigoflecha; 29/01/2007 a las 06:04
  #4 (permalink)  
Antiguo 29/01/2007, 06:10
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: problema con echo de resultados de consulta

hola de nuevo,
el codigo no lo he probado. lo he echo en directo... entonces como ha quedado la cosa?

ahora he aunque he probado mi codigo y a mi me funciona correctamente, primero me dibuja un div y luego otro... no ser....
aqui lo dejo adaptado a tus datos:
Código PHP:
<?
include("header.php"); //cargamos doctype, title, etiquetas meta, logo y banner.
include("administrador/includes/conexion.php"); //conectamos con la base de datos
?> 

<div class="left_contenedor">
<div class="left">
<ul>
<li><a href="quienes.html" id="quienes" title="QUIENES">QUIENES</a></li>
<li><a href="servicios.html" id="servicios" title="SERVICIOS">SERVICIOS</a></li>
<li><a href="beep.html" id="beep" title="BEEP">BEEP NEWS</a></li>
<li><a href="complementos.html" id="complementos" title="COMPLEMENTOS BEEP">COMPLEMENTOS</a></li>
<li><a href="franquicias.html" id="franquicias" title="FRANQUICIAS">FRANQUICIAS</a></li>
<li><a href="situacion.html" id="situacion" title="SITUACION">SITUACION</a></li>
<li><a href="informacion.html" id="info" title="INFORMACIÓN">INFORMACIÓN</a></li>
<li><a href="clientes.html" id="clientes" title="CLIENTES">CLIENTES</a></li>
</ul>
</div>
</div>

<?php
include("cabecera.php"); //cargamos cabecera flash.
?>


<div class="contenedor_index2">
<?
$sql 
"SELECT * FROM tic_producto";
$resultado mysql_query($sql,$dbh);
$num_resultados mysql_num_rows($resultado);
$num_productos $num_resultados;
$sql "SELECT * FROM tic_producto order by `id`"
$resultado mysql_query($sql,$dbh);
$resultado2 $resultado;
$dir "imagenes/"
while(
$row mysql_fetch_array($resultado2)){ 
//con el if decidiremos donde entramos si en producto 1 o 2 
    
if($x==0){ 
    
?> 
        <div class="producto1">
        <img src="<?=$dir.$row[imagen]; ?>" />         
        <div class="contenido_producto1">
        <h6><?=$row[titulo]; ?> </h6>
        <p class="texto_productos">
        <?=$row[descripcion]; ?></p>
        <p class="texto_productosprecio">Precio:<span class="texto_precios"> <?=$row[precio]; ?> €</span></p>
</div>
        </div>
    <? 
    
//asignamos x=1 para q no vuelva a entrar en el mismo y vaya al segundo producto 
    
$x=1
    }else{ 
    
?> 
        <div class="producto1">
        <img src="<?=$dir.$row[imagen]; ?>" />     
        <div class="contenido_producto1">
        <h6><?=$row[titulo]; ?> </h6>
        <p class="texto_productos">
        <?=$row[descripcion]; ?></p>
        <p class="texto_productosprecio">Precio:<span class="texto_precios"> <?=$row[precio]; ?> €</span></p>
        </div>
        </div>
    <? 
    
//asignamos 0 para q entre en el primer producto 
    
$x=0
    }
//fin IF 
}//fin while 
?>
</div>
<?
include("footer.php"); //cargamos pie de página (logos colaboradores, chica con portatil, copyright y enlaces.
?>
ya me diras... saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 29/01/2007 a las 06:16
  #5 (permalink)  
Antiguo 29/01/2007, 08:23
Avatar de codigoflecha  
Fecha de Ingreso: noviembre-2004
Mensajes: 325
Antigüedad: 19 años, 5 meses
Puntos: 3
Re: problema con echo de resultados de consulta

Hola Sergi, si ahora me funciona perfecto, no estaba cerrando en el sitio correcto el if, puedes ver como ha quedado en el enlace anterior.

Bueno el code quedo asi:

Código:
<?php
include("header.php"); //cargamos doctype, title, etiquetas meta, logo y banner.
include("administrador/includes/conexion.php"); //conectamos con la base de datos
?> 

<div class="left_contenedor">
<div class="left">
 <ul>
 <li><a href="quienes.html" id="quienes" title="QUIENES">QUIENES</a></li>
 <li><a href="servicios.html" id="servicios" title="SERVICIOS">SERVICIOS</a></li>
 <li><a href="beep.html" id="beep" title="BEEP">BEEP NEWS</a></li>
<li><a href="complementos.html" id="complementos" title="COMPLEMENTOS BEEP">COMPLEMENTOS</a></li>
 <li><a href="franquicias.html" id="franquicias" title="FRANQUICIAS">FRANQUICIAS</a></li>
 <li><a href="situacion.html" id="situacion" title="SITUACION">SITUACION</a></li>
<li><a href="informacion.html" id="info" title="INFORMACIÓN">INFORMACIÓN</a></li>
<li><a href="clientes.html" id="clientes" title="CLIENTES">CLIENTES</a></li>
 </ul>
</div>

</div>

<?php
include("cabecera.php"); //cargamos cabecera flash.
?>

<div class="contenedor_index2">

<?php  
    $sql = "SELECT * FROM tic_producto";
	$resultado = mysql_query($sql,$dbh);
    $num_resultados = mysql_num_rows($resultado);
    $num_productos = $num_resultados;
    $sql = "SELECT * FROM tic_producto order by `id`";	
    $resultado = mysql_query($sql,$dbh);
    $resultado2 = $resultado;
    $dir = "imagenes/"; 
while($row = mysql_fetch_array($resultado2)){ 
	//con el if decidiremos donde entramos si en producto 1 o 2  
    if($x==0){ 
?> 

<div class="producto1">
<img src="<? echo $dir.$row[imagen]; ?>" /> 

<div class="contenido_producto1">
<h6><? echo $row[titulo]; ?> </h6>
<p class="texto_productos">
<? echo $row[descripcion]; ?></p>
<p class="texto_productosprecio">Precio:<span class="texto_precios"> <? echo $row[precio]; ?> €</span></p>

</div>

</div>

<?  
    //asignamos x=1 para q no vuelva a entrar en el mismo y vaya al segundo producto  
    $x=1;  
    }else{  
    ?>  

<div class="producto2">
<img src="<? echo $dir.$row[imagen]; ?>" />


<div class="contenido_producto1">
<h6><? echo $row[titulo]; ?></h6>
<p class="texto_productos">
<? echo $row[descripcion]; ?></p>
<p class="texto_productosprecio">Precio:<span class="texto_precios"> <? echo $row[precio]; ?> €</span></p>
</div>

</div>

 <?  
    //asignamos 0 para q entre en el primer producto  
    $x=0;  
    }//fin IF  
}//fin while  
?> 
 
    

</div>


</div>

<?php
include("footer.php"); //cargamos pie de página (logos colaboradores, chica con portatil, copyright y enlaces.
?>
y por último tal vez te pido mucho, disculpa, si quisiera poner un div class="producto3" y un div class="producto4" que tendria que seguir con un else o tendria que cerrar el if anterior, poner a x valor 2 y crear un nuevo if que si x=2 cargo div class="producto3" else x=3 div class="producto4".
No se si me explico si no te pongo el code.
Nuevamente mil gracias
saludos
javi

Última edición por codigoflecha; 29/01/2007 a las 08:39
  #6 (permalink)  
Antiguo 29/01/2007, 09:08
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: problema con echo de resultados de consulta

Lo podrias hacer con un:
ElseIF
Código PHP:
if ($a $b) {
     print 
"a es mayor que b";
 } elseif (
$a == $b) {
     print 
"a es igual que b";
 } else {
     print 
"a es mayor que b";
 } 
o sino se podria hacer con un Case:
Código PHP:
switch ($x) {
    case 
1:
        
//aqui iria el primero div
       // asignamos el valor q queremos
       
$x=2;
       break 
1;  /* Exit only the switch. */
    
case 2:
        
//aqui iria el segundo div
        // asignamos el valor q queremos
        
$x=3;
       break 
2;  /* Exit only the switch. */
   
case 3:
        
//aqui iria el tercer div
        // asignamos el valor q queremos
        
$x=4;
       break 
3;  /* Exit only the switch. */
   
case 4:
        
//aqui iria el cuarto div
       // asignamos el valor q queremos
       
$x=1;
       break 
4;  /* Exit only the switch. */
//Caso por defecto...    
default:
        break;
    } 
eso ya a tu gusto!

saludo
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 29/01/2007 a las 10:37
  #7 (permalink)  
Antiguo 29/01/2007, 10:19
Avatar de codigoflecha  
Fecha de Ingreso: noviembre-2004
Mensajes: 325
Antigüedad: 19 años, 5 meses
Puntos: 3
Re: problema con echo de resultados de consulta

gracias sergi, probaré a ver que tal, aunque esta última pregunta es para terminar de entender su funcionamiento, no lo necesito ahora, cuando tenga un hueco hago unas pruebas.
saludos
javi
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 14:06.