Foros del Web » Creando para Internet » Herramientas y Software »

Consultas avanzadas en SQL desde Dreamweaver

Estas en el tema de Consultas avanzadas en SQL desde Dreamweaver en el foro de Herramientas y Software en Foros del Web. Tengo una aplicación web que recoge en un formulario el nombre de usuario y contraseña. Luego el nombre de usuario lo guardo en una variable ...
  #1 (permalink)  
Antiguo 20/01/2009, 18:30
 
Fecha de Ingreso: abril-2004
Mensajes: 21
Antigüedad: 20 años, 7 meses
Puntos: 1
Consultas avanzadas en SQL desde Dreamweaver

Tengo una aplicación web que recoge en un formulario el nombre de usuario y contraseña.
Luego el nombre de usuario lo guardo en una variable de sesión de la siguiente manera
$_SESSION['codigo'] = $_POST['codigo'];
Luego en una página web hay un listado que muestra los pedidos realizados por este cliente

Ej:
Clliente:2
Pedidos:
1025
1145
1589
2014

Posteriormente al hace clic sobre cada uno de los pedidos se muestra el detalle de cada pedido.
Esto está funcionando bien.

El tema que ahora surge el inconveniente que los códigos de los pedidos pueden ser iguales para dos clientes distintos pero obviamente el detalle es distinto.
Hasta ahora yo realizaba un juego de registros que se filtraba por el número de pedido.



Pero ahora al haber números de pedidos que puede pertenecer a distintos clientes ya no puedo filtrar por el parámetro pasado por URL,( pedido ) sino que debo filtrar por el núm. de pedido y por el nombre del cliente.
Intente hace desde la opción de juego de registros Avanzado una consulta SQL de las siguiente manera
SELECT * FROM recibos1
WHERE rec_nro = colname AND codigo=colname1
colname=$_GET['rec_nro']
y colname1=$_POST['codigo']



Pero me da ERRORRRRRR..
Espero soluciones
Gracias
  #2 (permalink)  
Antiguo 21/01/2009, 18:00
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Respuesta: Consultas avanzadas en SQL desde Dreamweaver

Creo que tu diseño de base de datos es poco flexible. en vez de tener cliente y pedido en la misma tabla deberías tener dos tablas, una para clientes y otra para pedidos y en la tabla de pedidos tener el id del cliente. algo así;

tabla cliente:
id_cliente
nombre_cliente
etc.

tabla pedidos:
id_pedido
id_cliente_pedido
etc.

De esta forma puedes tener múltiples pedidos para cada cliente. Es una relación básica de valor único/múltiple. Así puedes crear clientes sin necesidad de que se haga un pedido y puedes crear pedidos sin necesidad de darle update a la tabla de clientes. Quedaría algo así:

cliente

id: 1
nombre: José

id: 2
nombre: Pedro


Pedidos

id del pedido: 1
id del cliente: 1

id del pedido: 2
id del cliente: 1

id del pedido: 3
id del cliente: 2


de esta forma siempre puedes hacer una consulta de los pedidos de José así:

SELECT * FROM Pedidos WHERE id_cliente_pedido = 1

en este caso serían los pedidos de José.

De la forma que lo tienes tendrías que usar SQL mas avanzado, como el que me recomendaron a mí aquí;
http://www.forosdelweb.com/f21/como-...record-591485/

Yo te recomiendo que no lo compliques y que re-estructures tu base de datos. Si prefieres usar SQL mas complejo pasa por la sección de base de datos y ahí podrán ayudarte mejor.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #3 (permalink)  
Antiguo 23/01/2009, 15:41
 
Fecha de Ingreso: abril-2004
Mensajes: 21
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: Consultas avanzadas en SQL desde Dreamweaver

Muchas Gracias.. !!! luego te cuento como me fue !!!

Marcelo
  #4 (permalink)  
Antiguo 23/01/2009, 17:39
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Respuesta: Consultas avanzadas en SQL desde Dreamweaver

De nada amigo. Espero que todo salga bien.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #5 (permalink)  
Antiguo 23/01/2009, 17:45
 
Fecha de Ingreso: abril-2004
Mensajes: 21
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: Consultas avanzadas en SQL desde Dreamweaver

Hola.. estuve pensado tu solucion a reestructurar mis bases de datos, pero no se si eso va a servir ya que siempre voy a tener que hacer una consulta compleja de SQL debido a que necesito filtrar por dos variables que son, el codigo de cliente que se obtiene de un formulario y que lo almaceno un una variable de sesion para poder incluso mostrar el código de este cliente por todas las paginas que visita y la segunda variables es el codigo del pedido que se obtiene de un listado de los pedidos disponibles para este cliente, esta ultima variable se pasa a la pagina resultado como Parametro URL

En la tabla pedidos tengo algo asi:

Cod.Clientes--------------------------------Num. Pedidos
Cliente A------------------------------------1025
Cliente A------------------------------------1026
Cliente A------------------------------------1027
Cliente B------------------------------------1025
Cliente B-------------------------------------200

Cuando el cliente A quiera ver el detalle del pedido 1025 hara clic sobre el num de pedido 1025 ( él no ve que haya otro pedido 1025 de otro cliente )y este numero se pasara a la pagina siguiente como Parametro URL
En la pagina detalles-pedido.php debo filtrar por ambas condiciones ( num pedido y codigo de cliente )

Se puede usar en la opción avanzada del juego de registros la variable de sesion que se almaceno cuando el cliente en el primer formulario puso su clave.
$_SESSION['codigo'] = $_POST['codigo'];
Yo intente creando la segunda variable pero no pude
  #6 (permalink)  
Antiguo 23/01/2009, 17:58
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Respuesta: Consultas avanzadas en SQL desde Dreamweaver

Tú lo vez lineal pero yo lo veo más simple. Yo lo veo así:

Cliente:
Cliente A

Pedidos:
1025
1026
1027

-----------------------------

Cliente:
Cliente B

Pedidos:
1025
200

Si hay pedidos que se llaman igual usas el ID de la tabla en vez de el número del pedido. SIEMPRE necesitas tener un id único para cada record.

Esto se puede logran en SQL haciendo dos consultas sencillas:

primero la del cliente:

Código HTML:
SELECT * FROM Clientes
Haces un loop para listar los clientes y dentro de ese loop haces otra consulta pidiendo los pedidos de ese cliente:

Código php:
Ver original
  1. <?php while($data = mysql_fetch_assoc($query)) {
  2.  
  3. $id_del_cliente = $data['id'];
  4. $consulta = "SELECT * FROM Pedidos WHERE pedido_id = $id_del_cliente";
  5.  
  6. }?>

Con DW tienes hacer dos consultas separadas y despues meter una dentro dela otra ya que no permite loops dentro de loops.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #7 (permalink)  
Antiguo 24/01/2009, 08:58
 
Fecha de Ingreso: abril-2004
Mensajes: 21
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: Consultas avanzadas en SQL desde Dreamweaver

Hola, gracias por seguir ayudandome.. pero no veo como voy a usar el ID de la tabla en vez del numero de pedido ya que una vez que al cliente le aparece en la pantalla el listado con todos los pedidos.. y él selecciona uno para ver el detalle yo armo un vinculo de la siguiente manera desde DW

detalle-pedido.php?rec_nro=<?php echo $row_detalle['rec_nro']; ?>

En el momento que al cliente le aparecen el listado de los pedidos, yo los unicos datos que tengo para trabajar es el numero de cliente que lo puso en el primer formulario y quedo guardado en una variable de sesion y el id del pedido que se pasa mediante el vinculo anterior.

No hay forma en DW de hacer una consulta juego de registros con 2 variables ( variable sesion y el ID del pedido seleccionado )

tenes msn ?????? gracias para contactarte por ahi

Gracias
  #8 (permalink)  
Antiguo 12/04/2009, 11:37
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 19 años
Puntos: 281
Respuesta: Consultas avanzadas en SQL desde Dreamweaver

Usas un pedido para que la consulta te devuelva un pedido, ¿no? Para mi, los números de pedidos deberían ser únicos. Ahora, para ver todos los pedidos de un clientes puedes fácilmente pasar el numero de cliente si usas el sistema que describo arriba.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #9 (permalink)  
Antiguo 04/10/2011, 14:50
 
Fecha de Ingreso: septiembre-2011
Mensajes: 5
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Consultas avanzadas en SQL desde Dreamweaver

Hola, vi esta pagina y no puedo evitar preguntarles...
Tengo $query_ctrt = sprintf("SELECT fac_sol, fac_resp, bd_sol, bd_res, io_rec, io_res, to_rec, to_ed, rd, rd_res, act FROM ppal WHERE ctrt = %s", GetSQLValueString($colname_ctrt, "text"));
y no encuentro como hacerles un DATEDIFF, van de 2 en 2 fac_sol, fac_resp, etc. pero no se como concatenar dentro del datediff es en PHP en dreamwever esta consulta gracias
  #10 (permalink)  
Antiguo 05/10/2011, 11:06
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Respuesta: Consultas avanzadas en SQL desde Dreamweaver

Hola not_stonedraiders

Te recuerdo el aviso que había al final de este tema y que parece que no has leído o no le has hecho ni caso.



Tema cerrado.
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:51.