Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Select...valores a verificar

Estas en el tema de Select...valores a verificar en el foro de Mysql en Foros del Web. Hola a todos tengo un problema en php con mysql, estoy haciendo un carrito de compras y al elegir los productos digamos 4 los guardo ...
  #1 (permalink)  
Antiguo 09/05/2011, 17:05
 
Fecha de Ingreso: mayo-2011
Mensajes: 125
Antigüedad: 13 años
Puntos: 3
Select...valores a verificar

Hola a todos tengo un problema en php con mysql, estoy haciendo un carrito de compras y al elegir los productos digamos 4 los guardo en una session el codigo del producto el cual q la session llamada Car contiene "p001","p004","p003","p002" esto guardado en una cadena el cual yo hacia un select con esos valores en SqlServer 2005 con una función exe"select.."+mi cadena de código(string) y me listaba los productos de esos código no se como es en Mysql. de antemano gracias..xD
  #2 (permalink)  
Antiguo 10/05/2011, 05:17
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Select...valores a verificar

mm pues algo que se me ocurre es que crees un campo tipo hidden, y en el boton, creas un evetno onclick, donde le asignes a ese campo, la cadena p001, p004 y todos los demas
por ejemplo tu campo se llama productos

entonces seria:

onclick='document.getElementById('productos').valu e==document.getElementById('p001').value+document. getElementById('p001').value + ....'

esa seria una forma....
  #3 (permalink)  
Antiguo 10/05/2011, 05:56
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, 5 meses
Puntos: 2658
Respuesta: Select...valores a verificar

Si tu problema es con HTML/PHP, prueba lo que te dice oscarbt, pero postea la pregunta en el foro de PHP.
Ahora bien, si lo que quieres saber es cómo usar eso en una sentencia preparada (para eso se usa el EXEC en SQL Server), lo que tienes que hacer es crear la sentencia preparada en MySQL y usarla con PHP, recordando que en MySQL las cadenas de texto no usan comillas ("), sino apóstrofes (').

Manual de Referencia de MySQL: 13.7. Sintaxis SQL de sentencias preparadas
PHP::MyQSLI - mysqli_stmt::prepare
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 10/05/2011, 13:37
 
Fecha de Ingreso: mayo-2011
Mensajes: 125
Antigüedad: 13 años
Puntos: 3
Respuesta: Select...valores a verificar

el problema no es nada de html y programación, el problema es como ago un select q me considere mas de un valor el tipico caso seria:
Código MySQL:
Ver original
  1. Select * From Catalogo Where idCatalogo='p001'
en ese caso seria simple, pero en mi caso seria:
Código MySQL:
Ver original
  1. Select * From Catalogo Where idCatalogo='p001,p002,p003,p004'
yo se como hacerlo en SqlServer pero en MySql no se como lo hago estoy usando el programa
MySQL Workbench 5.2 CE pero gracias de todos modos
  #5 (permalink)  
Antiguo 10/05/2011, 15:50
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
Respuesta: Select...valores a verificar

yo la verdad que tampoco acabo de entenderte, pero viendo tu ejemplo, ¿no estaras buscando algo asi?
Código MySQL:
Ver original
  1. Select * From Catalogo Where idCatalogo='p001' OR idCatalogo='p002' OR idCatalogo='p003'


no se, la verdad que no entiendo mucho la duda, quiza si pruebas a describirla nuevamente :)
  #6 (permalink)  
Antiguo 10/05/2011, 17:16
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, 5 meses
Puntos: 2658
Respuesta: Select...valores a verificar

MySQL tiene dos formas de solucionarlo, dependiendo de cómo entra el parámetro, es decir si es una sola cadena que contiene valores separados por comas, o si son varios valores separados por comas.
Si vas a usar uno u otro, en definitiva es una decisión de tomarás cuando lo programes, ya que si estás trabajando con una página web, las consultas no las construye a mano el usuario, sino que lo haces por soft. Por eso de decía que la cosa podía ser por programación... Creí que se entendía.
Los links que te pasé eran porque esto mismo se puede hacer por medio de sentencias preparadas, para no tener que escribirlas continuamente, y para verlo estaban esos links.
¿Los miraste?

Volviendo al tema central, si el parámetro lo recibes en una sola cadena, con valores separados por comas se usa FIND_IN_SET():
Código MySQL:
Ver original
  1. FROM Catalogo
  2. WHERE FIND_IN_SET(idCatalogo, 'p001,p002,p003,p004')>0;
Pero si la consulta la vas a construir dinámicamente por programación, es mucho más sencillo usar IN():
Código MySQL:
Ver original
  1. FROM Catalogo
  2. WHERE idCatalogo IN('p001', 'p002', 'p003', 'p004');
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 11/05/2011, 08:26
 
Fecha de Ingreso: mayo-2011
Mensajes: 125
Antigüedad: 13 años
Puntos: 3
Respuesta: Select...valores a verificar

O gracias, pero lo de consultas preparadas no entiendo mucho ya q recien comienzo en el mundo de php mysql
  #8 (permalink)  
Antiguo 11/05/2011, 08:42
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, 5 meses
Puntos: 2658
Respuesta: Select...valores a verificar

Una sentencia preparada (SPR) es una consulta cargada en memoria y pendiente de ejecución, en el servidor de MySQL. Esta sentencia no realiza ninguna acción hasta ser invocada, y puede ser invocada tantas veces como sea necesario mientras permanezca en memoria.
Algunas sentencias preparadas son creadas de modo que esperen recibir parámetros al momento de la invocación. Son útiles para no tener que escribir completamente la consulta cada vez, y los parámetros permitirían lograr que hagan diferentes acciones conforme los valores recibidos.
En ese sentido son superiores a las vistas proque las vistas sólo pueden ser SELECTs y las SPR no, pueden usarse para otras cosas. Además las vistas si bien son consultas precompiladas, requieren que se lean todos los registros que tiene su definición antes de hacer algo con un subconjunto.
A nivel de las aplicaciones, la utilidad es que no se necesita una gran consulta creada para hacer lo que se requiere, sino solamente un "EXECUTE nombres_sentencia_prep WITH valor, valor, valor..." donde "valor" es cada uno de los parámetros esperados por la SPR.
¿Se va entendiendo?
No siempre se usan SPR. Las más de las veces lo que se puede poner en una SPR puede hacerse con un Stored Procedure, que sólo se carga al momento de ejecutarse, por lo que hay que elegir bien cuándo y para qué se usa.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: aaaaa, dolor_de_cabeza, php, practicando, sql-server
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:22.