Foros del Web » Programando para Internet » PHP »

problema con consulta where y signo de $

Estas en el tema de problema con consulta where y signo de $ en el foro de PHP en Foros del Web. hola a todos estaba realizando una consulta siempre eh filtrado con where y nunca habia tenido problemas pero siempre hay una primera vez al realizar ...
  #1 (permalink)  
Antiguo 20/03/2017, 19:27
 
Fecha de Ingreso: diciembre-2009
Mensajes: 16
Antigüedad: 14 años, 4 meses
Puntos: 1
problema con consulta where y signo de $

hola a todos estaba realizando una consulta siempre eh filtrado con where y nunca habia tenido problemas pero siempre hay una primera vez al realizar una busqueda con cun formulario creo 2 variables

Código PHP:
$buscar $_POST['buscar'];

$buscando $_POST['buscandon']; 
ahi no hay problema el problema es que tengo que quitarle el $ a la consulta si quiero que funcione para alguna o para otra pero no me deja tener las dos variantes al mismo tiempo algo se me esta pasando pero no lo veo.


Código MySQL:
Ver original
  1. WHERE   A.ACADEMIA LIKE '% /*$ quito el signo  para que la consulta de filtar por nombre funcione y vice versa*/buscar%' OR A.nombrem LIKE '%$buscando%'
  #2 (permalink)  
Antiguo 20/03/2017, 19:32
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: problema con consulta where y signo de $

Escribe toda la SQL desde el "SELECT......
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 20/03/2017, 19:35
 
Fecha de Ingreso: diciembre-2009
Mensajes: 16
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: problema con consulta where y signo de $

Gracias por responder te lo pongo aqui

Código MySQL:
Ver original
  1.  
  2. IFNULL(A.Id, 'TOTAL') AS ID , A.nombrem, A.login, A.CLAVE, A.MATERIA, A.SEMGRUPO,
  3.  
  4. COUNT(B.t1) AS 'TOTAL MAT.', SUM(C.t1) AS 'CALEND. REGISTRADAS', AVG(IF (C.t1 >= 13, 3, 0)) AS 'CALND. PUNTOS', SUM(D.t1) AS 'CRITERIOS REGISTRADOS',AVG( IF (D.t1 >= 3, 1, 0)) AS 'CRITERIOS PUNTOS',
  5.  
  6. /*.......   avance programatico P1........*/
  7. E.t1 AS 'cia', AVG( IF(E.t1 >= 1,1,0)) AS 'ciap', F.t1 AS 'ava', AVG( IF(F.t1 = 'TOTAL',1,0)) AS 'avap',  AVG(G.t1) AS 'cafa' ,  AVG( IF (G.t1 >= 0, 100, 0)) AS 'cafap' , AVG(G.t2) AS 'asia', AVG(IF(G.t1 >0, 1,0)) AS cafap, SUM(H.t1) AS proba , A. ACADEMIA , AVG( IF (H.t1 >= 1, 1, 0) ) AS probap, CONTANDO
  8.  
  9.  
  10.  
  11. FROM `maestrros` AS A
  12.  
  13.     (SELECT nombrem, login, CLAVE, SEMGRUPO, COUNT(login) AS t1
  14.     FROM `maestrros`
  15.     GROUP BY login, CLAVE) AS B
  16. ON A.login=B.login AND A.CLAVE=B.CLAVE
  17.  
  18.  
  19.     (SELECT NAME, maestroid, CLAVE, SEMGRUPO, ACCESO, BANDERA, COUNT(ACCESO) AS t1
  20.     FROM `calendarizacion_maestros`
  21.     WHERE ACCESO='GUARDADO'
  22.     GROUP BY maestroid, CLAVE) AS C
  23. ON A.login=C.maestroid AND A.CLAVE=C.CLAVE
  24.  
  25.     (SELECT Maestroid, CLAVE, ACCESO, SEMGRUPO, COUNT(ACCESO) AS t1
  26.     FROM `criterios`
  27.     WHERE ACCESO='GUARDADO'
  28.     GROUP BY Maestroid, CLAVE) AS D
  29. ON A.login=D.Maestroid AND A.CLAVE=D.CLAVE
  30.  
  31. /*..... apartir de aqui avanceprogramatico parcial 1.....*/
  32.  
  33.     (SELECT login, SEMGRUPO, CLAVE, cimp AS t1
  34.     FROM `maestrros`
  35.     GROUP BY login, CLAVE, SEMGRUPO) as E
  36. ON A.login=E.login AND A.CLAVE=E.CLAVE AND A.SEMGRUPO=E.SEMGRUPO
  37.  
  38.  
  39.     (SELECT login, SEMGRUPO, CLAVE, AvcReal01 AS t1
  40.     FROM `maestrros`
  41.     GROUP BY login, CLAVE, SEMGRUPO) as F
  42. ON A.login=F.login AND A.CLAVE=F.CLAVE AND A.SEMGRUPO=F.SEMGRUPO
  43.  
  44.  
  45.     (SELECT CLAVE, SEMGRUPO, NUSUARIO, AVG(CALFa) AS t1, AVG(ASISa) AS t2
  46.     FROM `alumnos`
  47.     WHERE CALFa != 'NP'
  48.     GROUP BY NUSUARIO, CLAVE, SEMGRUPO
  49.     ORDER BY CALFa, ASISa DESC
  50.     ) AS G
  51. ON A.login=G.NUSUARIO AND A.CLAVE=G.CLAVE AND A.SEMGRUPO=G.SEMGRUPO
  52.  
  53.  
  54.     (SELECT CLAVE, SEMGRUPO, maestroid, COUNT(parcial) AS t1
  55.     FROM `images`
  56.     WHERE parcial='1'
  57.     GROUP BY  maestroid, CLAVE, SEMGRUPO) AS H
  58. ON A.login=H.maestroid AND A.CLAVE=H.CLAVE AND A.SEMGRUPO=H.SEMGRUPO
  59.  
  60. ( SELECT ACADEMIA, login, SEMGRUPO, CLAVE, COUNT(CLAVE) AS CONTANDO
  61.     FROM `maestrros`
  62.     GROUP BY ACADEMIA ) AS I
  63. ON  A.ACADEMIA=I.ACADEMIA
  64.  
  65.  
  66. WHERE   A.ACADEMIA like '%buscar%' OR A.nombrem like '%$buscando%'
  67.  
  68. GROUP BY A.ACADEMIA, A.Id
  #4 (permalink)  
Antiguo 21/03/2017, 01:59
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: problema con consulta where y signo de $

Hola jaivaman,

Si esta consulta la estás asignando a una variable (por ejemplo $consulta_sql) tendrías que concatenar las variables de búsqueda (te pongo solo el WHERE):

Código PHP:
Ver original
  1. $consulta_sql = ".......WHERE   A.ACADEMIA like '%" . $buscar . "%' OR A.nombrem like '%" . $buscando . "%'........";

Espero que se entienda...
  #5 (permalink)  
Antiguo 22/03/2017, 16:54
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con consulta where y signo de $

Si la consulta está delimitada por comillas dobles no es necesario concatenar, PHP interpretará y reemplazará las variables.

Ahora, tu problema es un tanto extraño y lo que deberías hacer es mostrarla en pantalla, copiarla y ejecutarla en PhpMyAdmin, con eso puedes obtener alguna pista de dónde está el error.

Edito:

$_POST['buscandon'] es correcto o se trata de un error al teclear el código en el foro?
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: formulario, signo, variable
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 06:45.