Foros del Web » Programando para Internet » PHP »

Parse Error: Linea de Codigo MySQL en PHP

Estas en el tema de Parse Error: Linea de Codigo MySQL en PHP en el foro de PHP en Foros del Web. Hola Foreros me pueden ayudar con lo siguiente en MySQL, no se que esta mal, me da Parse Error siempre, y lo necesito tener parecido ...
  #1 (permalink)  
Antiguo 23/01/2009, 07:38
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 4 meses
Puntos: 19
Busqueda Parse Error: Linea de Codigo MySQL en PHP

Hola Foreros me pueden ayudar con lo siguiente en MySQL, no se que esta mal, me da Parse Error siempre, y lo necesito tener parecido de esta forma para ahorrarme unas cuantas lineas de codigo extra:

Código PHP:
$query "SELECT * FROM `responsable` WHERE `cedula` like '%$cedula%' OR `nombre` LIKE '%$nombre%' OR `cargo` LIKE '%$cargo%' OR WHERE MATCH (`nombre`) AGAINST ('$nombre') OR WHERE MATCH (`cargo`) AGAINST ('$cargo') ORDER BY `cedula`" 
  #2 (permalink)  
Antiguo 23/01/2009, 07:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Parse Error: Linea de Codigo MySQL en PHP

Una sentencia SELECT solo lleva una cláusula WHERE.. y tu estás poniendo tres.
El problema, visto a vuelo de pájaro, es que estás tratando de hacer en un sólo SELECT lo que deberías hacer en tres diferentes, porque la lógica que quieres aplicar es de OR exclusivo, y eso no lo puedes hacer de esa forma...
La solución pasa por implementarlas a las tres en la aplicación. ¿Cuánto código quieres ahorrarte de esta forma? ¿Quince líneas o poco más? Creo que por tan poco no tiene mucho objeto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 23/01/2009, 08:10
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 4 meses
Puntos: 19
Respuesta: Parse Error: Linea de Codigo MySQL en PHP

Esto fue lo que me ahorre:

Código PHP:
if(!empty($cedula) and empty($nombre) and empty($cargo))
{
    
$query .= " WHERE `cedula` = '$cedula' ORDER BY `cedula`";
}
elseif(!empty(
$nombre) and empty($cedula) and empty($cargo))
{
    
$query .= " WHERE `nombre` LIKE '%$nombre%' ORDER BY `cedula`";
}
elseif(!empty(
$cargo) and empty($nombre) and empty($cedula))
{
    
$query .= " WHERE `cargo` LIKE '%$cargo%' ORDER BY `cedula`";
}
elseif(!empty(
$cargo) and empty($nombre) and empty($cedula))
{
    
$query .= " WHERE `cargo` LIKE '%$cargo%' ORDER BY `cedula`";
}
elseif(!empty(
$cedula) and !empty($nombre) and empty($cargo))
{
    
$query .= " WHERE `cedula` = '$cedula' AND `nombre` LIKE '%$nombre%' ORDER BY `cedula`";
}
elseif(!empty(
$cedula) and !empty($cargo) and empty($nombre))
{
    
$query .= " WHERE `cedula` = '$cedula' AND `cargo` LIKE '%$cargo%' ORDER BY `cedula`";
}
elseif(!empty(
$nombre) and !empty($cargo) and empty($cedula))
{
    
$query .= " WHERE `nombre` LIKE '%$nombre%' AND `cargo` LIKE '%$cargo%' ORDER BY `cedula`";
}
elseif(!empty(
$nombre) and !empty($cargo) and !empty($cedula))
{
    
$query .= " WHERE `cedula` = '%$cedula%' AND `nombre` LIKE '%$cedula%' AND `cargo` LIKE '%$cargo%' ORDER BY `cedula`"
Y ya quite los WHERE y bueno, he aqui el que hice para probar y me sigue dando error:

Código PHP:
$query "SELECT * FROM `responsable` WHERE `cedula` like '%$cedula%' OR `nombre` LIKE '%$nombre%' OR `cargo` LIKE '%$cargo%' OR MATCH (`nombre`) AGAINST ('$nombre') OR MATCH (`cargo`) AGAINST ('$cargo') ORDER BY `cedula`"
  #4 (permalink)  
Antiguo 23/01/2009, 08:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Parse Error: Linea de Codigo MySQL en PHP

Pregntas básicas:
1. ¿Y qué dice el error?
2. ¿Qué tipo de tablas estás usando? (InnoDB, MyISAM, MEMORY, etc)
3. ¿Cómo es la definición de la creación de la tabla?

Sin saberlo, no es fácil decirte qué falla...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/01/2009, 09:24
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 4 meses
Puntos: 19
Respuesta: Parse Error: Linea de Codigo MySQL en PHP

Parse Error en Linea 14, que es donde esta el query
el tipo de tabla es: ENGINE=InnoDB DEFAULT CHARSET=latin1;
  #6 (permalink)  
Antiguo 23/01/2009, 09:24
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Parse Error: Linea de Codigo MySQL en PHP

Lo mas evidente es que tienes un error de programación antes que de Mysql, y que si aplicas una mejor lógica podrías ahorrarte algunas lineas.

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #7 (permalink)  
Antiguo 23/01/2009, 09:44
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 4 meses
Puntos: 19
Respuesta: Parse Error: Linea de Codigo MySQL en PHP

Intente arreglarlo pero ahora me sale esto:

"The used table type doesn't support FULLTEXT indexes"
  #8 (permalink)  
Antiguo 23/01/2009, 09:50
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Parse Error: Linea de Codigo MySQL en PHP

Las tablas tipo InnoDB no soportan FULLTEX.

Sobre tu consulta, voy a pedir al moderador que lo mueva al foro de php, donde sera mas fácil ayudarte ya que aqui no se puede poner código de programación
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #9 (permalink)  
Antiguo 23/01/2009, 09:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Parse Error: Linea de Codigo MySQL en PHP

Tema trasladado a PHP.

http://www.forosdelweb.com/f21/funci...-datos-413499/
  #10 (permalink)  
Antiguo 23/01/2009, 13:31
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 4 meses
Puntos: 19
Respuesta: Parse Error: Linea de Codigo MySQL en PHP

Y me podrian ayudar con la logica entonces? saludos
  #11 (permalink)  
Antiguo 23/01/2009, 14:30
 
Fecha de Ingreso: enero-2009
Mensajes: 19
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Parse Error: Linea de Codigo MySQL en PHP

Hola, prueba con este codigo:

$query = "SELECT * FROM `responsable`
WHERE `cedula` like '%$cedula%'
OR `nombre` LIKE '%$nombre%'
OR `cargo` LIKE '%$cargo%'
OR Match(`nombre`) Against('$nombre' WITH QUERY EXPANSION)
OR Match(`cargo`) Against('$cargo' WITH QUERY EXPANSION)
ORDER BY `cedula`";

o Tambien reemplazando el WITH QUERY EXPANSION con IN BOOLEAN MODE.
OR Match(`nombre`) Against('$nombre' IN BOOLEAN MODE)
OR Match(`cargo`) Against('$cargo' IN BOOLEAN MODE)
  #12 (permalink)  
Antiguo 12/02/2009, 13:25
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 4 meses
Puntos: 19
Respuesta: Parse Error: Linea de Codigo MySQL en PHP

lamentablemente el match no funciona mi bd es innoDB saludos ya resolvi con implode gracias
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:31.