Foros del Web » Programando para Internet » PHP »

Lógica para una búsqueda (PHP y SQL)

Estas en el tema de Lógica para una búsqueda (PHP y SQL) en el foro de PHP en Foros del Web. Tengo unas dudas de cómo plantear una búsqueda/sentencia SQL. Actualmente tengo un DB la cual NO puedo modificar y tengo que trabjar contra ésta tal ...
  #1 (permalink)  
Antiguo 26/04/2016, 04:47
Avatar de senseeye3led  
Fecha de Ingreso: abril-2016
Ubicación: 127.0.0.1
Mensajes: 163
Antigüedad: 8 años
Puntos: 11
Pregunta Lógica para una búsqueda (PHP y SQL)

Tengo unas dudas de cómo plantear una búsqueda/sentencia SQL.

Actualmente tengo un DB la cual NO puedo modificar y tengo que trabjar contra ésta tal y cómo esta.

Mediante PHP introduzco por teclado una cadena y realizo la búsqueda en la DB mostrando por pantalla los resultados. (Búsqueda versión antigua).

Aqui empieza la modificación que quiero hacer:

Suponiendo que la cadena introducida por teclado contiene carácteres raros (espacios, simbolos etc) no es capaz de encontrarlo en la DB puesto que no existe cómo tal en la DB.

1) He decidido aplicar una expresión regular para normalizar los datos introducidos por teclado. (De tal manera que sólo guardará una cadena con números y letras mayúsculas).

2) Vuelco el contenido de la columna de la tabla de la DB por la que voy a realizar la búsqueda a memoria en un array. Mientras vuelco el contenido también lo normalizo. (Sólo habrá números y letras mayúsculas).

3) Realizo la búsqueda del parámetro introducido por teclado contra el array que contiene los valores obtenidos de la columna de la tabla de la DB. Devuelvo un arrayNuevo con las posiciones de memoria del array que contiene el valor de la columna de la tabla.

4) En el arrayNuevo tengo el número de fila de la tabla de la DB dónde tengo la información.

Hasta aquí todo es correcto.

La búsqueda antigua la realizaba mediante un arrayB que contenía cadenas del estilo:

Código:
R.codigo like '%VALOR_TECLADO%';

E.marcaID = 'COKE';

E.articuloID = 'A00'
Haciendo algo similar a:
Código:
$sql_consulta2 = implode(" and ", $arrayB );
Y después realizo:
Código:
$sql_consulta =  SELECT ... WHERE ".$sql_consulta2." ORDER BY ...
Se utiliza el like pero actualmente el like no es necesario puesto que en el arrayNuevo tengo las posiciones y accedo a la DB dónde puedo obtener las cadenas exactas por las que buscar. Tengo en el vector las cadenas necesarias y sé el número coincidencias o que habría que buscar.

En lugar de pasarle:

R.codigo like '%VALOR_TECLADO%';

Tengo un array en el cual tengo almacenadas todas las cadenas exactas que habría que pintar.

¿Alguna idea de cómo solucionar la búsqueda y/o plantearla?

Etiquetas: select, sql, tabla
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 10:38.