Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/06/2010, 05:34
all-ill
 
Fecha de Ingreso: junio-2002
Mensajes: 750
Antigüedad: 21 años, 10 meses
Puntos: 22
Respuesta: Ayuda como no mostrar resultados iguales en while

Quizá en lugar de usar dos while, uno dentro de otro y reducir la cantidad de consultas o peticiones realizadas a la base de datos puedes usar dos consultas.
En la primera consulta obtienes el tipo de producto y rellenas la lista desplegable:
Código PHP:
Ver original
  1. <?php
  2. // consulta para obtener los tipos de producto
  3. $tipos=mysql_query( "SELECT * FROM tipo ORDER BY nombre");
  4.  
  5. // crear y rellenar lista de tipo de producto
  6. ?>
  7. <select name="filtro">
  8. <?php
  9. while( $row3 = mysql_fetch_array($tipos) ){
  10. ?>
  11. <option value="<?=$row3['1'];?>"><?=$row3['0'];?></option>
  12. <?php
  13. }
  14. ?>
  15. </select>

Para la consulta de productos supongo que puedes dejarla más o menos como la tenías:
Código PHP:
Ver original
  1. mysql_query( "SELECT * FROM productos WHERE iddis=".$_REQUEST['iddis']." order by idtipo ASC");

Y para aplicar el filtro:
Código PHP:
Ver original
  1. $sql="SELECT * FROM productos WHERE iddis=$_REQUEST['iddis']";
  2. if($_POST['idtipo']){
  3. $sql .= " AND idtipo=$_POST['idtipo']";
  4. }
  5.  
  6. $contenidoFiltrado=mysql_query( $sql);

Es posible que en estos ejemplos se encuentren errores de escritura o de uso de comillas o falta de {$_POST['idtipo']}, etc. (hace tiempo que no programo)

El código se vería más limpio usando clases y sin mezclar tanto código php con html...