Foros del Web » Programando para Internet » PHP »

mostrar datos de una consulta y a la vez mostrame los demas datos de una categoria

Estas en el tema de mostrar datos de una consulta y a la vez mostrame los demas datos de una categoria en el foro de PHP en Foros del Web. buenas. como lo explico. tengio un problem que no se por donde empezar a desarrollar. eñlicare mi tema para que se entienda y bueno y ...
  #1 (permalink)  
Antiguo 08/07/2009, 12:09
(Desactivado)
 
Fecha de Ingreso: junio-2009
Mensajes: 256
Antigüedad: 14 años, 10 meses
Puntos: 1
mostrar datos de una consulta y a la vez mostrame los demas datos de una categoria

buenas. como lo explico. tengio un problem que no se por donde empezar a desarrollar. eñlicare mi tema para que se entienda y bueno y asi pue sme puedan ayudar. me explico. tengo una base de datos que me muestra los productos usb agrupados por categorias. Las categorias son economicos, clasicos y ejecutivos.

yo estoy en la categoria ejecutivos y muestro los productos en esa categoria. los productos usb los muestro por codigos, es decir no le coloco el campo autoincreentado, solo muestro los codigos ingresados por un administrador. tengo el producto con el codigo 800, y lo que quiero es que yo al hacer clic en el codigo 800, me debe mostrar primero el codigo 800 del usb con sus datos pero a la vez mostrarme los demas productos de la categoria ejecutivos y asi con los demas productos.

como lo hago.

El archivo que muestro los productos agrupados por categorias .

Código PHP:
sql_usb "SELECT p.*, c.*, m.* FROM miusb_productos p, miusb_categorias c, 
                    miusb_modelos m
                    WHERE p.idcategoria = c.idcategoria
                    AND p.idmodelo = m.idmodelo
                    GROUP BY p.idcategoria"
;
$rpta_usb mysql_query($sql_usb) or die(mysql_error());
        
$i 1;
while(
$fila_usb mysql_fetch_array($rpta_usb)){
        
#consulto las demas categorias de los USB.
$resultado_cat_productos "SELECT p.*, c.*, m.* FROM miusb_productos p, miusb_categorias c, miusb_modelos m
WHERE p.idcategoria = c.idcategoria
AND p.idmodelo = m.idmodelo
AND p.idcategoria = '"
.$fila_usb['idcategoria']."'";

$rs_resultado_cat_productos mysql_query($resultado_cat_productos) or die(mysql_error()); 
Código PHP:
    <table width="792" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td id="img_categorias"><div id="titulo_categorias">&nbsp;&nbsp;<?=$fila_usb['nombre_categoria']; ?></div></td>
      </tr>
      <tr>
        <td height="15">&nbsp;</td>
      </tr>
      <tr>
        <td>
            <!--CONTENIDOS POR CATEGORIAS USB.-->
            <table border = "0" cellpadding="0" cellspacing = "0">
            <?php
                
                $columnes 
5# Número de columnas (variable)
                    
        
for ($i=1$fila_producto mysql_fetch_array($rs_resultado_cat_productos); $i++) {
            
$resto = ($i &#37; $columnes); // Número de celda del <tr> en que nos encontramos 
                
if ($resto == 1) {
                                
            
?>
            <tr>
              <?php        
                                
# Si es la primera celda, abrimos <tr> 
              
?>
              <td width = "244">
                <table style="width:153px;" border="0" cellpadding="0" cellspacing="0" id = "border_redon_producto">
                  <tr>
                    <td height="6"></td>
                  </tr>
                  <tr>
                    <td id = "titulo_codigo">
                        Cod.: 
                        <?=$fila_producto['codigo_producto']; ?>                
                    </td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>
                    <div align="center">
                        <a href="miusb_productos.php?categoria=<?=$fila_producto['idcategoria']; ?>">
                            <img src="productos/<?=$fila_producto['imagen_producto']; ?>" width="110" border="0" style="cursor:pointer;" title="haga clic para ver mas" class="loading" />                        
                        </a>                    
                    </div>
                    </td>
                  </tr>
                  <tr>
                    <td bgcolor="#E0E0DF"><a href="miusb_productos.php?categoria=<?=$fila_producto['idcategoria']; ?>"><img src="images/ver_detalle.jpg" width="151" height="14" border="0" /></a></td>
                  </tr>
                  <tr>
                    <td height="7"></td>
                  </tr>
                </table>          
              </td>
              <?php        if ($resto == 0) {    ?>
            </tr>
            <?php            # Si es la última celda, cerramos </tr> 
                        

                                        
                            if (
$resto <> 0) { # Si el resultado no es múltiple de $columnes acabamos de rellenar los huecos 
                                
$ajust $columnes $resto# Número de huecos necesarios 
                                    
for ($j 2$j $ajust$j++) {    
            
?>
            <tr>
              <td>&nbsp;</td>
              <?php                    }             ?>
            </tr>
            <?php
                            
# Cerramos la última línea
                            
                                                           
            
?>
            </table>        
        </td>
      </tr>
      <tr>
        <td height="15"></td>
      </tr>
    </table>
    <?php
        $i
++;
        }
    
?>
el otro archivo que muestro los resultados de mi consulta. bueno es con paginacion. en eso no tengo problemas.

Código PHP:
    $registros 10;
    
    if (!
$pagina) { 
        
$inicio 0
        
$pagina 1
    }else{ 
        
$inicio = ($pagina 1) * $registros
    } 
    
    
$sql_ver_producto "SELECT p. * , c. * , m. * FROM miusb_productos p,  miusb_categorias c, miusb_modelos m
                         WHERE p.idcategoria = c.idcategoria
                         AND p.idmodelo = m.idmodelo  
                         AND p.idcategoria = '"
.$_GET['categoria']."'
                         ORDER BY p.idcategoria DESC"
;
    
$rpta_ver_producto mysql_query($sql_ver_producto) or die(mysql_error());
    
$total_registros mysql_num_rows($rpta_ver_producto);

    
$resultado_productos "SELECT p. * , c. * , m. * FROM miusb_productos p, miusb_categorias c, miusb_modelos m
                            WHERE p.idcategoria = c.idcategoria
                            AND p.idmodelo = m.idmodelo 
                            AND p.idcategoria = '"
.$_GET['categoria']."'
                            ORDER BY p.idcategoria DESC
                            LIMIT $inicio, $registros"
;
    
$rs_resultado_productos mysql_query($resultado_productos) or die(mysql_error());
    
$filas_productos mysql_num_rows($rs_resultado_productos);
    
    
$total_paginas ceil($total_registros $registros); 
como lo vuelbo a repetir. lo que quiero es que yo al hacer clic en el codigo 800, me debe mostrar primero el codigo 800 del usb con sus datos pero a la vez mostrarme los demas productos de la categoria ejecutivos y asi con los demas productos.
  #2 (permalink)  
Antiguo 08/07/2009, 12:26
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: mostrar datos de una consulta y a la vez mostrame los demas datos de una c

bueno, lo que haria yo es:

primero, crear una pagina llamada detalles.php, donde reciba por parametro en la url el codigo del producto (digamos, siguiendo tu ejemplo, detalles.php?codigo=800);

Luego, por $_GET agarras ese valor y realizar una consulta sql para que te muestre solo los productos con codigo igual a 800. Seria algo asi:

Código PHP:
$codigo $_GET['codigo'];
$sql "SELECT * FROM productos WHERE codigo='$codigo'" 
Luego realizas la consulta como lo haces siempre, y muestras los datos como lo haces tambien normalmente. Genralemente, lo hago algo asi:

Código PHP:
Nombre producto: <?echo $row_producto['nombre'];?>
y asi con el resto de los campos de tu registros.

Ahora, para mostrar los demas productos de la categoria de este producto, debes hacer otra consulta. Y para ello, necesitas la categoria del producto seleccionado. Para ello, de la primera consulta, haces algo asi:

Código PHP:
$categoria $row_producto['categoria']
sql2"SELECT * FROM productos WHERE categoria='$categoria'" 
Luego, mediante un while, listas todos los productos de dicha categoria, utilizando el mismo procedimiento que para listar la info detallada del producto. Desde ya, tu eliges que campo mostrar y como armar y seleccionar la info.

Desde ya, que si no sabes mucho de PHP, todo lo que te dije, sera poco entendible, pero si sabes, creo que lograste seguirme.

Cualquier cosa, no dudes en consultarme. Un saludo!

Pablo.
  #3 (permalink)  
Antiguo 08/07/2009, 14:03
(Desactivado)
 
Fecha de Ingreso: junio-2009
Mensajes: 256
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: mostrar datos de una consulta y a la vez mostrame los demas datos de una c

bueno no habia pensado en ello. coloque 2 consultas, la primera que me muestra el producto y la otra mustro los productos con su respectiva categoria. pero cuando veo los resultados se repite el codigo 800.

como hago para que no se repita.

gracias y saludos.

Última edición por xfer2; 08/07/2009 a las 14:03 Razón: correcion del texto.
  #4 (permalink)  
Antiguo 08/07/2009, 14:47
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: mostrar datos de una consulta y a la vez mostrame los demas datos de una c

y... simplemente sacalo de la consulta!

seria algo asi:

Código PHP:
$codigo $_GET['codigo'];
$categoria $row_producto['categoria'] ;
sql2"SELECT * FROM productos WHERE categoria='$categoria' AND codigo!='$codigo' " 
Ahi te sacara de la consulta el producto cuyo codigo sea el que estes mostrando en detalle. Creo que era eso lo que preguntabas, no es cierto??

Fijate si te sirve, y hacemelo saber.

Saludos, y espero que te sirva!

Pablo.
  #5 (permalink)  
Antiguo 08/07/2009, 15:57
(Desactivado)
 
Fecha de Ingreso: junio-2009
Mensajes: 256
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: mostrar datos de una consulta y a la vez mostrame los demas datos de una c

gracias por responde locoxchachor.

mejor muestro mi consulta como lo he desarrollado.

Código PHP:
    #Aqui hago una consulta para mostrar el primer producto.
    
$sql_producto "SELECT p. * , c. * , m. * FROM miusb_productos p, miusb_categorias c, miusb_modelos m
                     WHERE p.idcategoria = c.idcategoria
                     AND p.idmodelo = m.idmodelo  
                     AND p.idproducto = '"
.$_GET['idproducto']."'";
    
$rpta_producto mysql_query($sql_producto) or die(mysql_error());
    
$fila_producto mysql_fetch_array($rpta_producto);
    
    
#Aqui hago otra consulta para mostrar los demas productos pero con su respectiva categoria.
    
$sql_ver_producto "SELECT p. * , c. * , m. * FROM miusb_productos p, miusb_categorias c, miusb_modelos m
                         WHERE p.idcategoria = c.idcategoria
                         AND p.idmodelo = m.idmodelo  
                         AND p.idcategoria = '"
.$fila_producto['idcategoria']."'
                         AND p.idproducto = '"
.$_GET['idproducto']."'";
    
$rpta_ver_producto mysql_query($sql_ver_producto) or die(mysql_error());    
    
$total_registros mysql_num_rows($rpta_ver_producto);

    
$resultado_productos "SELECT p. * , c. * , m. * FROM miusb_productos p, miusb_categorias c, miusb_modelos m
                            WHERE p.idcategoria = c.idcategoria
                            AND p.idmodelo = m.idmodelo 
                            AND p.idcategoria = '"
.$fila_producto['idcategoria']."'
                            AND p.idproducto = '"
.$_GET['idproducto']."'
                            LIMIT $inicio, $registros"
;            
    
$rs_resultado_productos mysql_query($resultado_productos) or die(mysql_error());
    
    
$filas_productos mysql_num_rows($rs_resultado_productos);
    
$total_paginas ceil($total_registros $registros); 
saludos.
  #6 (permalink)  
Antiguo 08/07/2009, 16:56
(Desactivado)
 
Fecha de Ingreso: junio-2009
Mensajes: 256
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: mostrar datos de una consulta y a la vez mostrame los demas datos de una c

alguna ayuda.
  #7 (permalink)  
Antiguo 08/07/2009, 17:02
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: mostrar datos de una consulta y a la vez mostrame los demas datos de una c

Cual es el problema? Probaste lo que te comente?

EL sql de los productos de la misma categoria pero sin incluir el tuyo, podria ser algo asi (siguien lo que haces vos aca):

Código PHP:
$resultado_productos "SELECT p. * , c. * , m. * FROM miusb_productos p, miusb_categorias c, miusb_modelos m 
                            WHERE p.idcategoria = '"
.$fila_producto['idcategoria']."' 
                            AND p.idproducto != '"
.$_GET['idproducto']."' 
                            LIMIT $inicio, $registros"

No se porque realizas tantas comparaciones?? Que es lo que quieres lograr?
  #8 (permalink)  
Antiguo 09/07/2009, 10:10
(Desactivado)
 
Fecha de Ingreso: junio-2009
Mensajes: 256
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: mostrar datos de una consulta y a la vez mostrame los demas datos de una c

gracias por responder locoxchacho. probe el anterior ejemplo que colocaste.

Código PHP:
$codigo $_GET['codigo'];
$categoria $row_producto['categoria'] ;
sql2"SELECT * FROM productos WHERE categoria='$categoria' AND codigo!='$codigo' " 
pero me mostraba el codigo del producto y no los demas productos de la categoria.

y con respecto a lo que preguntaste que es lo que quiero lograr, solo quiero mostrar el producto y a la vez mostrandome los demas productos de la categoria.

es como wikipedia que tienen sus conceptos y le das clic en cualquier concepto, te muestra el tema que has elejido. algo asi quiero lograr. como un anclaje.

volviendo al tema voy a colocar el codigo que colocaste.

gracias por tu paciencia

saludos.

Última edición por xfer2; 09/07/2009 a las 10:25 Razón: correcion del texto.
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 11:12.