Foros del Web » Programando para Internet » PHP »

Problema al mostrar consulta mysql

Estas en el tema de Problema al mostrar consulta mysql en el foro de PHP en Foros del Web. Hola a todos, he postedao la consulta en el foro de mysql, pero creo que tienen razón al decirme que debería postearlo aquí. Estoy haciendo ...
  #1 (permalink)  
Antiguo 02/05/2012, 11:56
 
Fecha de Ingreso: febrero-2010
Ubicación: Madrid, España
Mensajes: 36
Antigüedad: 14 años, 2 meses
Puntos: 0
Problema al mostrar consulta mysql

Hola a todos,

he postedao la consulta en el foro de mysql, pero creo que tienen razón al decirme que debería postearlo aquí.

Estoy haciendo una consulta en php a una base de datos en mysql para obtener información de unas tiendas. Me explico: Tengo un formulario con 2 select que permiten filtrar los datos de poblacion y marca, lo cual manda a otra página mediante get.

En la segunda página, para poder mostrar las tiendas resultado del filtro uso el siguiente select:


Código MySQL:
Ver original
  1.    tiendas.id,
  2.    tiendas.nombre,
  3.    tiendas.poblacion_id,
  4.    tiendas.poblacion,
  5.    tiendas.direccion,
  6.    marcas.id_tiendas,
  7.    marcas.id_marcas
  8. FROM tiendas  
  9.    INNER JOIN marcas
  10.    tiendas.id = marcas.id_tiendas
  11.    AND marcas.id_marcas=$_GET['marca']
  12.    AND tiendas.poblacion_id=$_GET['pobl']




El problema es que el resultado es el siguiente error:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in archivo.php on line 89.

La ínea 89 es donde está la consulta que no logra hacer.

¿Alguien podría decirme cómo arreglar el error? He probado de todo y no logro lo que desearía hacer.

Estoy usando el dreamweaver, y el código es el siguiente:

Código PHP:
Ver original
  1. mysql_select_db($database_local, $local);
  2. $query_Resultado = "SELECT
  3.   tiendas.id,
  4.   tiendas.nombre,
  5.   tiendas.poblacion_id,
  6.   tiendas.poblacion,
  7.   tiendas.direccion,
  8.   marcas.id_tiendas,
  9.   marcas.id_marcas
  10. FROM tiendas  
  11.   INNER JOIN marcas
  12. WHERE
  13.   tiendas.id = marcas.id_tiendas
  14.   AND marcas.id_marcas=$_GET['marca']
  15.   AND tiendas.poblacion_id=$_GET['pobl']";
  16. $Resultado = mysql_query($query_Resultado, $local) or die(mysql_error());
  17. $row_Resultado = mysql_fetch_assoc($Resultado);
  18. $totalRows_Resultado = mysql_num_rows($Resultado);

Muchas gracias por adelantado.
  #2 (permalink)  
Antiguo 02/05/2012, 12:05
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Problema al mostrar consulta mysql

En el inner join debes poner la clausula ON.
Si las variables GET son alfanuméricas debes ponerlas entre comillas como te pongo en el ejemplo, si son numéricas quítale las comillas simples.

Código PHP:
 "INNER JOIN marcas
ON
   tiendas.id = marcas.id_tiendas
WHERE
   marcas.id_marcas='"
.$_GET['marca']."'
   AND tiendas.poblacion_id='"
.$_GET['pobl']."'" 
saludos,
__________________
Tu álbum de cromos online!!
  #3 (permalink)  
Antiguo 02/05/2012, 12:12
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Problema al mostrar consulta mysql

En adición a lo que te sugiere santris, quiero aclarar algo, no es valido encerrar arreglos con indices de cadena dentro de comillas, para usar un arreglo dentro de comillas debes de encerrarlo en llaves. el error básicamente se refiere a eso.


Saludos.
  #4 (permalink)  
Antiguo 02/05/2012, 12:25
 
Fecha de Ingreso: febrero-2010
Ubicación: Madrid, España
Mensajes: 36
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema al mostrar consulta mysql

Muchas gracias. Me lo habeis solucionado. Pero el problema ahora viene cuando digo "todos".

Es decir, el select es dinámico y me coge todas las marcas disponibles de la tabla marcas y todas las poblaciones del campo tiendas.poblacion. Le tengo puesto un "todas" para mostrar todas, y le he puesto como valor *, pero no me devuelve ningún registro cuando le indico todas las marcas y/o todas las poblaciones.

¿El asterisco no sirve para que me muestre todas?

Muchísimas gracias por vuestra ayuda.
  #5 (permalink)  
Antiguo 02/05/2012, 12:30
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Problema al mostrar consulta mysql

Cita:
Iniciado por oxcar Ver Mensaje
Muchas gracias. Me lo habeis solucionado. Pero el problema ahora viene cuando digo "todos".

Es decir, el select es dinámico y me coge todas las marcas disponibles de la tabla marcas y todas las poblaciones del campo tiendas.poblacion. Le tengo puesto un "todas" para mostrar todas, y le he puesto como valor *, pero no me devuelve ningún registro cuando le indico todas las marcas y/o todas las poblaciones.

¿El asterisco no sirve para que me muestre todas?

Muchísimas gracias por vuestra ayuda.
Mejor pon el código para ver como lo planteas;
__________________
Tu álbum de cromos online!!
  #6 (permalink)  
Antiguo 02/05/2012, 12:46
 
Fecha de Ingreso: febrero-2010
Ubicación: Madrid, España
Mensajes: 36
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema al mostrar consulta mysql

Perdonad, no me he dado cuenta:

El código del select sería este:

Código PHP:
Ver original
  1. <select name="poblacion" id="poblacion">
  2.                 <option value="*" selected="selected">Todas las disponibles</option>
  3.                                 <option value="41">Madrid</option>
  4.                                 <option value="44">Las Rozas de Madrid</option>
  5.                                 <option value="56">San Sebastián de los Reyes</option>
  6.                                 <option value="89">Torrejón de Ardoz</option>
  7.                                 </select>

El otro select es igual, pero con las marcas.

El sql sería:

Código MySQL:
Ver original
  1. $marcaa=$_GET['marca'];
  2. $pobl=$_GET['poblacion'];
  3.  
  4. mysql_select_db($database_local, $local);
  5. $query_Resultado = "
  6. SELECT
  7.   tiendas.id,
  8.   tiendas.nombre,
  9.   tiendas.poblacion_id,
  10.   tiendas.poblacion,
  11.   tiendas.direccion,
  12.   tiendas.direccion2,
  13.   tiendas.telefono,
  14.   marcas.id_tiendas,
  15.   marcas.id_marcas
  16. FROM tiendas
  17. INNER JOIN marcas
  18. WHERE
  19.   tiendas.id = marcas.id_tiendas
  20.   AND marcas.id_marcas='$marcaa'
  21.   AND tiendas.poblacion_id='$pobli'
  22.   ORDER BY tiendas.id DESC"

Este código me funciona si defino una opción en ambos select que no sea "Todas las disponibles". En cuanto dejo un select con esa opción no me devuelve ningún registro.

Yo creo que el problema viene con el asterisco de la opción "Todas las disponibles". ¿Cómo le ves?

Muchas gracias por el tiempo que me estáis dedicando, santris y gjx2.

Etiquetas: formulario, mysql, sql, variables
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 22:35.