Foros del Web » Programando para Internet » PHP »

PHP OO Problema con query php para consulta en MySQL

Estas en el tema de Problema con query php para consulta en MySQL en el foro de PHP en Foros del Web. Hola a todos: Soy un poco novato en programacion php y no estoy muy familiarizado con el foro, no se si esta pregunta deberia ir ...
  #1 (permalink)  
Antiguo 12/08/2012, 20:03
Avatar de DarkEngel  
Fecha de Ingreso: julio-2011
Ubicación: Chalco de DÃ*az Covarrubias, Mexico
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Problema con query php para consulta en MySQL

Hola a todos:

Soy un poco novato en programacion php y no estoy muy familiarizado con el foro, no se si esta pregunta deberia ir aqui o en otro tema.
Espero me puedan ayudar.

Les explico el caso:

Estoy diseñando una pagina web para vendedores, en la cual hay diversos productos que todos los vendedores ofrecen y algunos datos de sus clientes.

El vendedor se identifica con login y contraseña. De acuerdo al login busco sus datos en la base de usuarios si el usuario existe, obtengo la variable de sesion, y obtengo los datos necesarios para mostrar en la pagina de bienvenida. Si no existe le impido el acceso.

De esos datos, obtengo la variable $nombrevendedor e $iniciales Cabe mencionar, que existia una base de datos en la que anteriormente, se identificaba al vendedor por sus iniciales y se ponia algun comentario en el mismo campo, pero esa base de datos ya fue exportada a mysql y ahora se identifica al vendedor por su nombre.


Cuando se registra una venta de X vendedor, se ingresan los datos de su cliente: nombre, telefono, producto vendido, nombre vendedor (el mismo que antes era de las iniciales), fecha, etc. en una tabla asignada para cada producto.

En la pagina de bienvenida, existen botones de acuerdo al producto vendido o existente (producto1, producto2, producto3, etc.)

Al pulsar el boton del producto elegido, se llama a la pagina productoX.php la cual hace una consulta a mysql y se obtienen los registros especificos de ese vendedor, ya sea por nombre o iniciales.


Para esa busqueda, utilizo el siguiente codigo:

$nombrevendedor;
$iniciales;

include(dbconection.php);

$result = mysql_query("SELECT * FROM PRODUCTO1 WHERE VENDEDOR = '".$nombrevendedor."' OR VENDEDOR LIKE '%".$iniciales."%' ORDER BY PRODUCTO1.NOMBRE_CLIENTE ASC");

imprimo los datos mediante un while ($row = mysql_fetch_row($result)) {
echo $row[1];
//y todos las demas columnas necesarias
}


En todo esto, no tengo problemas, ya que se muestran todos los registros de ese vendedor en especifico.


Problema:
El problema viene cuando el vendedor, quiere filtrar sus registros mediante una busqueda que a continuacion explico:


En la pagina productox.php, se muestra un buscador con campo tipo text y el boton buscar:

Al pulsar el boton buscar, se llama a la pagina resultado.php Al realizar la busqueda, tambien se muestran los clientes de otros vendedores, y ese es el problema.

Necesito que al realizar la busqueda, se muestren unicamente los resultados de la $palabra (ya sea numero o frase) exclusivamente de ese vendedor, ya sea por su nombre o iniciales.


Les pongo algo como lo que quisiera:

Busca en toda la tabla PRODUCTO1 la $palabra cuando el $nombrevendedor o $iniciales esten registradas en la columna VENDEDOR y ordenalos por NOMBRE_CLIENTE

Otra forma seria: Busca la $palabra en toda la tabla PRODUCTO1 de la base de datos, pero que coincidan con el $nombrevendedor o $iniciales y ordenalos por NOMBRE_CLIENTE

Otra opcion que se me ocurre seria: Busca en la tabla PRODUCTO1 la $palabra y $nombreusuario or $iniciales y ordenalas por NOMBRE_CLIENTE


El codigo que funciono, pero muestra todos los resultados (incluyendo los de otros vendedores es este:


$nombrevendedor;
$iniciales;

include(dbconection.php);

$result = mysql_query("SELECT * FROM PRODUCTO1 WHERE VENDEDOR = '".$nombrevendedor."' OR VENDEDOR LIKE '%".$iniciales."%' AND NOMBRE_CLIENTE LIKE '%".$palabra."%' OR `TELEFONO` LIKE '%".$palabra."%' OR PRODUCTO LIKE '%".$palabra."%' OR CANTIDAD LIKE '%".$palabra."%' OR FECHA LIKE '%".$palabra."%' ORDER BY PRODUCTO1.NOMBRE_CLIENTE ASC");

Imprimo los datos mediante un while ($row = mysql_fetch_row($result)) {
echo $row[1];
//y todos las demas columnas necesarias
}

Basicamente, el problema, es que no quiero que se muestren los resultados de otros clientes.

Ya he intentado otro tipo de variantes para el mysql_query, pero: Me muestra un error de sintaxis o solo se muestra un unico resultado o se muestra el resultado vacio.

Estos son los errores que me muestra:
Parse error: syntax error, unexpected T_LOGICAL_OR

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in

Por lo que yo creo, es un error de sintaxis en el query (no la estoy haciendo adecuadamente)

Si alguien me pudiera orientar para realizar alguna query de manera adecuada que cumpla estas condiciones:

Buscar la $palabra en la toda la tabla PRODUCTO1
que coincida con $nombrevendedor o $iniciales de la columna VENDEDOR y los resultados obtenidos, los ordene por la columna NOMBRE_CLIENTE

Tal vez algo como esto:
("SEARCH * FROM PRODUCTO1 WHERE $palabra AND VENDEDOR = $nombrevendedor OR $palabra AND VENDEDOR LIKE %$iniciales% ORDER BY PRODUCTO1.NOMBRE_CLIENTE ASC)";

Estoy utilizando WampServer version 2.1
Incluye:
PHP Version 5.3.5
Apache 2.2.17
mysqlnd 5.5.8


No se si esta clase de consulta se puede hacer en esta version de MySQL o si la tengo que hacer de otra manera, utilizando otros comandos (que desconozco) como ya habia mencionado soy un poco novato en php.

Disculpen si este tema es demasiado extenso, pero tal vez es necesario para explicar adecuadamente mi problema.

Si alguien tiene una idea de como realizar esta consulta utilizando el mismo metodo u otros metodos (que me explique como funciona), se los agradecere infinitamente.

Muchas gracias de Antemano.

Última edición por DarkEngel; 12/08/2012 a las 21:07
  #2 (permalink)  
Antiguo 12/08/2012, 21:31
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema con query php para consulta en MySQL

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in

a esas 2 funciones no le esta llegando nada, lo que le estas pasando es vacio.
usa la funcion die() para comprobar los errores en las consultas mysql_query
  #3 (permalink)  
Antiguo 12/08/2012, 21:45
Avatar de DarkEngel  
Fecha de Ingreso: julio-2011
Ubicación: Chalco de DÃ*az Covarrubias, Mexico
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema con query php para consulta en MySQL

Con la funcion or die mysql_error();
me muestra el mensaje:
Parse error: syntax error, unexpected T_LOGICAL_OR

He probado de varias formas indicar la query, pero o marca error o no recibe nada, y segun el error, es por que no estoy haciendo correctamente la consulta no estoy utilizando el comando adecuado para comparar dos valores en columnas distintas y no se como hacerlo, porque no conozco otra forma.

Agradezco tu respuesta rodrigo791
  #4 (permalink)  
Antiguo 12/08/2012, 21:53
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema con query php para consulta en MySQL

hace un echo de la consulta.

$consulta = mysql_query... etc

echo $consulta;

a ver que aparece

a demas, mysql_query lleva 2 parametros, 1 la consulta y 2do la variable de conexion al servidor , la que tiene mysql_connect, ponelo en cada query

capturaste bien los datos que te llegan del formulario tambien?
  #5 (permalink)  
Antiguo 12/08/2012, 22:13
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con query php para consulta en MySQL

Este error viene tal vez de un condicional con algún paréntesis mal:

Cita:
Parse error: syntax error, unexpected T_LOGICAL_OR
Este error requiere que coloques más código.

Te recomiendo que a todos tus query le agregues:

Código PHP:
Ver original
  1. $result = mysql_query("aqui esta tu consulta") or die (mysql_error());

para encontrar el error más fácilmente.

Cita:
a demas, mysql_query lleva 2 parametros, 1 la consulta y 2do la variable de conexion al servidor , la que tiene mysql_connect, ponelo en cada query
No siempre, en PHP también existen los parámetros opcionales.

Cita:
resource mysql_query ( string $query [, resource $link_identifier = NULL ] )
Se sabe que son opcionales porque están entre corchetes [ ].

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 12/08/2012, 22:31
Avatar de DarkEngel  
Fecha de Ingreso: julio-2011
Ubicación: Chalco de DÃ*az Covarrubias, Mexico
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema con query php para consulta en MySQL

Cita:
Iniciado por rodrigo791 Ver Mensaje
hace un echo de la consulta.

$consulta = mysql_query... etc

echo $consulta;

a ver que aparece

a demas, mysql_query lleva 2 parametros, 1 la consulta y 2do la variable de conexion al servidor , la que tiene mysql_connect, ponelo en cada query

capturaste bien los datos que te llegan del formulario tambien?
He revisado todo detenidamente, incluso agregue la variable de conexion, y en cada query tengo el or die mysql_error(); lo que dice es lo mismor:
Parse error: syntax error, unexpected T_LOGICAL_OR in

Al hacer el echo $consulta; no se muestra, puesto que al no hacerse bien la consulta, no arroja ningun resultado.
  #7 (permalink)  
Antiguo 12/08/2012, 22:34
Avatar de DarkEngel  
Fecha de Ingreso: julio-2011
Ubicación: Chalco de DÃ*az Covarrubias, Mexico
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema con query php para consulta en MySQL

Cita:
Iniciado por andresdzphp Ver Mensaje
Este error viene tal vez de un condicional con algún paréntesis mal:



Este error requiere que coloques más código.

Te recomiendo que a todos tus query le agregues:

Código PHP:
Ver original
  1. $result = mysql_query("aqui esta tu consulta") or die (mysql_error());

para encontrar el error más fácilmente.



No siempre, en PHP también existen los parámetros opcionales.



Se sabe que son opcionales porque están entre corchetes [ ].

Saludos.
Me gustaria saber como aplicar los parametros opcionales, ya que probablemente, eso serviria, pero no se como funcionan ni que condiciones se deben especificar.

Agradezco tus comentarios. Saludos
  #8 (permalink)  
Antiguo 12/08/2012, 22:37
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con query php para consulta en MySQL

Este problema es un error de sintaxis de PHP no de Mysql

Cita:
Parse error: syntax error, unexpected T_LOGICAL_OR in
Por favor coloca las líneas de código donde puede estar el error, tienes el número de línea donde está el error...

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 12/08/2012 a las 22:42
  #9 (permalink)  
Antiguo 12/08/2012, 22:46
Avatar de DarkEngel  
Fecha de Ingreso: julio-2011
Ubicación: Chalco de DÃ*az Covarrubias, Mexico
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema con query php para consulta en MySQL

Adicionalmente, les comento, que incluso he intentado hacer las busquedas en phpmyadmin, (para saber que codigo php podria usar) pero tambien me devuelve errores. Estoy pensando que esa version no soporta ese tipo de consultas, o que necesito utilizar otras opciones como mysql_result u otras distintas.

¿Se podria realizar primero una busqueda por $nombrevendedor e $iniciales (como si me ha funcionado) y sobre esos resultados obtenidos (ponerlos en una nueva variable $resobt) y luego buscar $palabra en $resobt? y lo que resulte imprimirlos con echo....

¿Creen que podria funcionar? (seria como aplicar un filtro, supongo).

Gracias por los comentarios
  #10 (permalink)  
Antiguo 12/08/2012, 23:06
Avatar de DarkEngel  
Fecha de Ingreso: julio-2011
Ubicación: Chalco de DÃ*az Covarrubias, Mexico
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema con query php para consulta en MySQL

Al rato pongo el codigo, porque ya es hora de dormir y mañana hay que trabajar, lo pondre sin falta porque ahorita no me da tiempo, sino, no dormire mucho... jejeje en cuanto lo tenga, lo posteo, para que lo chequen

Salu2

Etiquetas: mysql, query, registro, tabla, variables, usuarios
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 16:27.