Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/11/2011, 13:46
Avatar de linuxzero
linuxzero
 
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: Problema con condicionales

Las consultas te las realiza bien?? no te tira error de mysql??, fijate de probar como para debugear, de hacer un echo de todas las consultas. Por ejemplo:

Código PHP:
Ver original
  1. //datos recuperados por get y post convertidos en variables
  2.     @$categoria = $_GET['c'];
  3.     @$marca = $_GET['m'];
  4.     @$dato = $_POST['dato'];
  5.  
  6.     if(@$categoria != "" AND @$marca == "" AND @$dato == "" )
  7.     {
  8.         // echo de la consulta por pantalla para ver que me esta escribiendo
  9.         echo "SELECT nombre, foto1, SEO, idproducto FROM productos WHERE categoria='$categoria' ORDER BY create_at ASC";
  10.  
  11.         $result = mysql_query("SELECT nombre, foto1, SEO, idproducto FROM productos WHERE categoria='$categoria' ORDER BY create_at ASC", $coneccion) or die(mysql_error());
  12.         $numero = mysql_num_rows($result); // obtenemos el número de filas
  13.     }
  14.     elseif (@$marca != "" AND @$categoria == "" AND @$dato == "") {
  15.         // echo de la consulta
  16.         echo "SELECT nombre, foto1, SEO, idproducto FROM productos WHERE marca='$marca' ORDER BY create_at ASC";
  17.  
  18.         $result = mysql_query("SELECT nombre, foto1, SEO, idproducto FROM productos WHERE marca='$marca' ORDER BY create_at ASC", $coneccion) or die(mysql_error());
  19.         $numero = mysql_num_rows($result); // obtenemos el número de filas
  20.     }
  21.     elseif (@$dato != "" AND @$categoria == "" AND @$marca == "") {
  22.         // echo de la consulta
  23.         echo "SELECT nombre, foto1, SEO, idproducto FROM productos WHERE MATCH(nombre, categoria, tipo, marca) AGAINST ('$dato')";
  24.  
  25.         $result = $buscar = mysql_query("SELECT nombre, foto1, SEO, idproducto FROM productos WHERE MATCH(nombre, categoria, tipo, marca) AGAINST ('$dato')", $coneccion) or die(mysql_error());
  26.         $numero = mysql_num_rows($result); // obtenemos el número de filas    
  27.     }
  28.     else {
  29.         // echo de la consulta
  30.         echo "SELECT nombre, foto1, SEO, idproducto FROM productos WHERE estado='Activo' ORDER BY create_at ASC";
  31.  
  32.         $result = mysql_query("SELECT nombre, foto1, SEO, idproducto FROM productos WHERE estado='Activo' ORDER BY create_at ASC", $coneccion) or die(mysql_error());
  33.         $numero = mysql_num_rows($result); // obtenemos el número de filas
  34.     }

Coloque 2 cosas nuevas en tu codigo, primero la impresion del sql que estas generando para ver si esta tomando los valores de php que le estas pasando, si ves que en el where te falta el dato fijate de concatenar bien el string con php. Ejemplo:

Código PHP:
Ver original
  1. mysql_query("SELECT ... WHERE id = " . $id . " AND nombre = '" . $nombre . "'");

Y despues agregue despues de cada mysql_query() un or die() para que imprima el error de sql en caso de fallar y saber bien en donde te equivocaste.

Proba esto y avisame ;)
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com