Código PHP:
elseif ($sel=="Todos los artículos" and $busca!= "") {
$rst_form=mysql_query("SELECT * FROM form WHERE seccion = 'Moda' AND descripcion LIKE '%".$busca."%' $tip $zon $order ");
$num_rows=mysql_num_rows($rst_form);
![lloron](http://static.forosdelweb.com/fdwtheme/images/smilies/chillando.png)
![lloron](http://static.forosdelweb.com/fdwtheme/images/smilies/chillando.png)
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Estoy realizando pruebas y mas pruebas y el caso es que ni siquiera funciona poniendo esto: Código PHP: Es decir ni siquiera con lo básico funciona....¿Alguien ve algun error? ![]() |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Cita: Sin saber lo que las otras variables contienen, eso no se puede responder. Bien podrías estar poniendo basira, y no lo sabríamos...
Iniciado por angel_xx_1990 ![]() Código PHP: ![]() ![]() Al menos postea la query tal y como queda armada, antes de ejecutarla... es decir, cuando ya las variables fueron reemplazadas por sus valores. Además sería muy buena idea que capturaras los erroes posibles que la base de datos devuelve. Al menos así sabríamos si hay errores de sintaxis... Y trata de ser concreto: ¿No te funciona por qué? ¿Devuelve errores? ¿Hiciste una prueba de esa query en phpMyadmin?
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? OK
Código PHP:
Ver original Así quedaría la consulta ya que los otros campos estan vacios porque no se seleccionó nada... No devuelve ningun error en la ejecucion desde la web simplemente no muestra nada como si no encontrara nada pero en realidad si debería encontrar resultados.. |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? ¿Podrias decir que te devuelve el MySQL Admin si ejecutas directamente la consulta en la BD? Ejecuta por ejemplo: SELECT * FROM form WHERE seccion = 'Moda' AND descripcion LIKE '%zapato%' ORDER by id DESC Si no te devuelve ningun error es que tu consulta esta bien... y por lo tanto el problema esta en la variable $buscar
__________________ Follow me on twitter @franbedia |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? En primer lugar asegurémonbos de que eso tiene algo realmente válido:
Código PHP:
Ver original Aunque yo probaría así también, simplemente para ver la diferencia:
Código PHP:
Ver original
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Como te comentan gnzsoloyo y fbedia, verifica: 1. Si tu consulta funciona bien en el phpmyadmin.
Código MySQL:
Ver original 2. Que la variable $buscar esté trayendo algún valor, puedes usar Código PHP: Código PHP: |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? En cuanto a la variable $busca: Primero la declaro vacía al principio de todo después del head:
Código PHP:
Ver original y luego tengo el codigo que os e puesto arriba...: si NO se utiliza el buscador tengo lo siguiente: Cita: Y si SI utila el buscador tengo lo siguiente:
Código PHP:
Ver original
Código PHP:
Ver original |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Con Código PHP: ¿Por otro lado, que valores toman $tip $zon $order y desde dónde vienen? Empieza por esas validaciones. Saludos!! |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? A ver, $tip y $zon están vacias en estas comprobaciones, y $ order es = ORDER by id DESC tengo un echo $busca y me muestra el valor que escribo en el buscador...(cuando se inicia la página está vacio) Creo definitivamente que el problema lo tengo en el $busca o en los if que los compara... |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Verifica si estás entrando en los if, es decir si se cumple una condición u otra: por ejemplo, si dices que $busca si trae algún valor: Código PHP: |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Me da el siguiente error, que no tengo ni la menor idea de por que ocurre, para la comprobación e puesto lo siguiente:
Código PHP:
Ver original
Código PHP:
Ver original Y al realizar la prueba desde la web obtengo lo siguiente: *Si marco todo y el buscador vacío me muestra en pantalla: llego con todos y busca vacio ------ (este OK!!) *Si marco todos y escribo en buscador me muestra: llego con otros y busca vacio ------ (este ERROR!!) *Si marco otros y buscador vacio: llego con otros y busca vacio ------ (este OK!!) *Y por último si marco otros y escribo en buscador: llego con otros y busca vacio ------ (este ERROR!!) ¿Por que pasa ésto?.....No entiendo nada...Gracias! |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? E dado un valor fijo a $busca y me sigue entrando en el siguiente if: Código PHP: ¿Veis el error?, porque yo no... ![]() GRACIAS! ![]() |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Bien amigos acabo de solucionar el problema os comento como ha sido, creo que no me funionaba mas bien por la interpretacion que hacia el navegador del código ya que he comabiado los or por || y a salido funcionando, al final la consulta quedó así:
Código PHP:
Ver original Gracias! |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Cita: A mi entender, el problema es que no comprendes el uso de operadores lógicos...
Iniciado por angel_xx_1990 ![]() E dado un valor fijo a $busca y me sigue entrando en el siguiente if: Código PHP: ¿Veis el error?, porque yo no... ![]() GRACIAS! ![]() Ese IF no tiene ningun senntido, porque sólo require que uno de los primeros sea TRUE para que entre, sin importar si $busca tiene algo. ¿Estás seguro de entender el uso de AND y OR? Mira, en ese contexto, todo eso da TRUE y por tanto va a entrar si o si a ese caso. Prueba esto y verás: Código PHP:
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? No hay diferencia semántica entre esto:
Código PHP:
Ver original Y esto:
Código PHP:
Ver original Francamente no veo cómo uno te peude funcionar y otro no... En especial, si miras el uso según lo que dice el manual: http://www.php.net/manual/es/languag...rs.logical.php
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Yo también creía que era lo mismo or y || y de hecho es lo mismo creo, pero puede ser que sea diferente la interpretación del código de los navegadores web, te comento que el or me sirve si son 2 o 3 cuestiones es decir:
Código PHP:
Ver original pero si es una enumeracion más larga no me funcionaba correctamente, y ahora poniendo el signo || si funciona..no se igual que tu muy bien por que, pero así es.. y otra cosa..¿estas seguro que entraría con que se cumpla sólo uno de los primeros? tengo entendido que si en un condicional existe un and con otra comparación, para que entre a él debe también cumplir ésa condición, ¿si no que sentido tiene? ejemplo:
Código PHP:
Ver original Para que entrara en ese if debería de cumplirse que sel sea Hombre y sel2 Ropa, los dos, de ahí viene el and, te quiero decir que no entraria solo si cumple el primer sel y el segundo no... ¿Me equivoco? Saludos! |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Cita: La verdad es que me asombra lo que estás diciendo, porque demuestra al menos tres cosas:
Iniciado por angel_xx_1990 ![]() Yo también creía que era lo mismo or y || y de hecho es lo mismo creo, pero puede ser que sea diferente la interpretación del código de los navegadores web, te comento que el or me sirve si son 2 o 3 cuestiones es decir: pero si es una enumeracion más larga no me funcionaba correctamente, y ahora poniendo el signo || si funciona..no se igual que tu muy bien por que, pero así es.. y otra cosa..¿estas seguro que entraría con que se cumpla sólo uno de los primeros? tengo entendido que si en un condicional existe un and con otra comparación, para que entre a él debe también cumplir ésa condición, ¿si no que sentido tiene? Para que entrara en ese if debería de cumplirse que sel sea Hombre y sel2 Ropa, los dos, de ahí viene el and, te quiero decir que no entraria solo si cumple el primer sel y el segundo no... ¿Me equivoco? Saludos! 1) Ni te molestaste en probar lo que te dije respecto al funcionamiento de un I() con un valor constante. 2) No conoces nada de lógica proposicional. 3) Ni siquiera tienes claro cómo se ejecuta el PHP.... No quiero ofenderte, pero hay cosas que con sólo decirlas ... Vamos por partes: 1) Si hubieses probado el ejemplo que te puse, habrías notado que si pones una constante como único valor del IF(), se evalúa como verdadero (true), por la simple razón de que para que una constante de true en PHP lo único que debe suceder es que exista. ¿Qué implica eso? Pues simplemente que todos esos valores que pones dan el mismo resultado que poner Código PHP: 2) Un OR o su equivalente "||" es una disyunción lógica, y una proposición (el IF) se evalúa por el valor de verdad de una de ambas, pero si te molestas en leer logica proposicional verá que la disyunción es verdadera si: a) Ambas son verdad. b) La primera es verdad y la segunda falsa. c) La primera es falsa y la segunda es verdad. Esto significa que para ser FALSE, ambas tienen que ser falsas. Un AND o su equivalente "&&", es una conjunción lógica y en la proposición sólo es verdad si ambas partes de la proposicion son verdaeras y falso en todos los otros casos. Finalmente, cuando tienes una proposición compuesta de varias condiciones, se evalúan de izquierda a derecha,y los resultados del primer par son la entrada del tercer parámetro . Esto significa que: Código PHP: ¿Por qué? Porque el primer par da TRUE (disyunción), ese resultado se compara con el tercero y da TRUE (otra disyunción, lo mismo pasa con la siguiente, y para cuando llega a la última el resultado es TRUE, por lo que se compara como Código PHP: ¿Se va entendiendo? Estas cosas que te digo no dependen de ningún navegador ni lenguaje, porque son parte inherente a todos los lenguajes y sistemas de programación. Son lógica basal de todo. 3) El tema de la interpretación de los navegadores, te recomiendo que ni lo menciones, porque recibirás la misma respuesta (con otras palabras) que te daré ahora: El PHP NO SE EJECUTA EN LOS NAVEGADORES. Se ejecuta en los servidores, por ende nada tienen que ver en este asunto. Ni lo menciones de nuevo, porque es conocimiento básico de PHP. Resumiendo, para que te funcione mejor la cosa, prueba esto y recién entonces estarás haciendo algo bueno en ese IF: Código PHP: Tienes que hacer la comparación contra la variable en todas las ocasiones.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Ok, pido disculpas por mis desconocimientos en php y en general en programación web, de hecho estoy aprendiendo de forma autodidacta jeje.. Pero creo que no acabas de entender el problema que tenía, está claro y ya sabia que para que entre en un or, es suficiente con que una sea verdadera, y al tener un and se debería de cumplir tambien la segunda condición es decir tal y como yo lo tenía
Código PHP:
Ver original Para que entrara en ese if, es tan sencillo como que $sel fuera igual a alguna de las siguientes opciones: Hombre - Ropa, Hombre - Complementos, Hombre - Calzado, Mujer - Ropa, Mujer - Complementos, Mujer - Calzado, Niñ@s. Con que UNA de esas opciones fuera verdad y ADEMAS (and) $busca estuviera vacío ($busca== "") debería entrar en ese if, que es exactamente lo que yo quería, pero lo que me estaba ocurriendo es que entraba en otro...(más arriba escribí la prueba que hice).. Y el resultado es que al cambiar solamente or por || (sin cambiar absolutamente nada más) entró perfectamente a su if correspondiente..¿Por que? no lo se, ya que como te digo estoy aprendiendo jeje y por último yo tenia entendido que:
Código PHP:
Ver original y esto:
Código PHP:
Ver original compara igualmente la variable $sel con el or, luego ¿no es lo mismo? GRACIAS! |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Cita:
Iniciado por angel_xx_1990 ![]() (...) y por último yo tenia entendido que:
Código PHP:
Ver original y esto:
Código PHP:
Ver original compara igualmente la variable $sel con el or, luego ¿no es lo mismo? GRACIAS! ![]() No. No es lo mismo... ¿De dónde sacaste esa idea? Es la primera vez en mi vida que escucho algo así. Mira, para hacerte una demostración simple de tu error, copia esto que te paso y pruébalo: Código PHP: Para que quede claro, en lógica, una constante como parámetro, es siempre verdadera. Cono nota para que tengas en cuenta, en todos los cursos de programación que puedas asistir verás que una de los temas es precisamente lógica proposicional, y eso es porque cada vez que debes crear controladores de flujo, o condiciones de derivación, estás usando lógica proposicional. Siempre. Finalmente, si lo que necesitas es que compare A o B o C y D, es decir alguno de los tres primeros valores, y si o sí el último, debes usar paréntesis para controlar la evaluación de las condiciones: Código PHP: Recuerda que no es lo mismo 3*2+5 que (3*2)+5. En lógica no es lo mismo A or B and C, que (A or B) and C... Estudia un poco de esto: Lógica Proposicional
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Me has convencido, este fin de semana que tenga tiempo para ello cambiaré mi código por el que me recomiendas.. De todas formas mi código tal como te dije que lo puse al final es decir con || funciona bien con la prueba que hice, ¿es posible que haya hecho mal la prueba? ¿o simplemente también funciona con el código así como lo tengo actualmente? Me da miedo no lo vaya a dejar creyendo que funciona y luego...nada.. ya os contaré Gracias!! |
| ||||
Respuesta: ¿Está bien hecha la siguiente consulta? Cita: No exactamente. El tema pasa por que debes hacer una prueba que seguro deba fallar. Es la prueba crítica.De todas formas mi código tal como te dije que lo puse al final es decir con || funciona bien con la prueba que hice, ¿es posible que haya hecho mal la prueba? Es probable que hayas seleccionado correctamente los valores (en especial si provienen de un combo), pero lo que está sucediendo es que el IF no lo evalúa en realidad. Simplemente se está haciendo una prueba con valores que no pueden fallar jamás. Básicamente, tienes que provocar un fallo, para verificar que el IF realmente funciona. La única opción que se me ocurre es que invoques ese scrript desde otro, donde le pases un valor de parámetro imposible.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) Última edición por gnzsoloyo; 20/03/2014 a las 10:36 |
Etiquetas: |