No estás teniendo en cuenta las reglas de logica proposicional.
El OR es una disyunción que separa las condiciones en dos.
Esta es la primera condición:
Esta es una segunda condición independiente:
Código SQL:
Ver originalCod LIKE '%".$valor."%' AND Estado = 0
La query te devolverá todos los que cumplan con la primera,
y además aquellos que cumplan con la segunda.
Para hacer que sea una sola condición, y que se considere como una sola cosa esto:
Código SQL:
Ver originalDescripcion LIKE '%".$valor."%' OR Cod LIKE '%".$valor."%'
la consulta debe estar escrita así:
Código SQL:
Ver originalSELECT *
FROM saldos_productos
WHERE
(Descripcion LIKE '%".$valor."%' OR Cod LIKE '%".$valor."%')
AND Estado = 0 ORDER BY Cod ASC
o sea,
con uso de paréntesis, lo mismo que en matemática.