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

es posible hacer una consulta sql asin

Estas en el tema de es posible hacer una consulta sql asin en el foro de Mysql en Foros del Web. partiendo de un campo en la base de datos llamado valores donde guardo una url algo como esto: valores mis_valores.php?valores=3 mis_valores.php?valores=1 mis_valores.php?valores=3 mis_valores.php?valores=2 mis_valores.php?valores=3 mis_valores.php?valores=3 ...
  #1 (permalink)  
Antiguo 09/11/2013, 16:44
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
es posible hacer una consulta sql asin

partiendo de un campo en la base de datos llamado valores donde guardo una url algo como esto:

valores
mis_valores.php?valores=3
mis_valores.php?valores=1
mis_valores.php?valores=3
mis_valores.php?valores=2
mis_valores.php?valores=3
mis_valores.php?valores=3

es posible saber el valor de la variable valores y las veces que se repite osea mostrar algo parecio a esto:

valor repeticiones
3 4
1 1
2 1

Alguna ayuda para conseguir los datos estos?
saludos.
  #2 (permalink)  
Antiguo 09/11/2013, 18:19
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: es posible hacer una consulta sql asin

No sé si podrá en PHP, pero si estás guardando así en la base, por lo pronto estás almacenando muy mal los datos...
Es decir, la estructura de datos no es correcta desde el muto de vista del diseño de BBDD, y la forma más sencilla de resolver tu problema no es por consultas.
Si la tabla estuviese bien creada, sería una consulta de SQL muy elemental...
¿Por qué guardas la URL junto con los datos?
Eso es innecesario.
__________________
¿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 10/11/2013, 04:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: es posible hacer una consulta sql asin

es verdad que podría guardarse por separado el valor que se pasa por la url (por get) y luego rehacer la url y hacer estadísticas de todo tipo con mayor comodidad; pero también es habitual almacenar la url completa, incluidos los valores pasados por url. Yo probaría esto para lo que tienes, entendiendo que solo habrá un igual (=) en esa url:
Código MySQL:
Ver original
  1.   SUBSTRING_INDEX(url,'=',-1) valor,
  2.   COUNT(*) repeticiones
  3.  FROM tutabla
  4.   GROUP BY SUBSTRING_INDEX(url,'=',-1)
  5.   ORDER BY repeticiones DESC
De todas formas, piensa qué quieres hacer con esas url, porque si necesitas hacer estadísticas de la parte anterior al valor, deberás prever cómo sacarlas. Si la estructrura es uniforme, podrás utilizar substring_index para entresacar las partes, pero habría que ver cuál es la naturaleza de las url que cargas.

Última edición por jurena; 10/11/2013 a las 04:22
  #4 (permalink)  
Antiguo 10/11/2013, 07:30
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: es posible hacer una consulta sql asin

Hola gracias por vuestra colaboracion, comento un poco mas sobre lo que quiero por si me podeis ayudar, en realidad son mas valores seria algo asin la url:

mis_valores.php?valores=3&opcion=1&selecion=1

aunque la url no es siempre asin tambien puede ser algo como esto

contactar.php?id=2332

es decir que de esta ultima url guardada no hace falta sacar estadisticas, pero si quedria guardar la url para saber por donde navega el usuario que entra en mi web, entonces realmente como se hace este tipo de estructuras es valido y efectivo guardar solo la url, o es necesario guardar todos las variables creando campos por ejemplo asin:

valores
opcion
selecion

aunque de esta forma no siempre seran rellenados por ejemplo con la url contactar.php?id=2332 estos campos seran nulos, espero que me lo aclareis.
Saludos.
  #5 (permalink)  
Antiguo 10/11/2013, 07:59
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: es posible hacer una consulta sql asin

En ese caso, si los valores son variables, se puede hacer de varias formas. Ortodoxamente, implica que en la tabla que registra la navegación, sólo se registra la URL, mientras que los datos opcionales irían en campos de un registro relacionado, en otra tabla.
pero también es posible usar algún tipo de campo adicional para eso en la propia tabla, a modo de "linea de vida" o campo paramétrico.
Sólo se necesitaría separar los valores de parámetros si con ellos se requiere hacer una estadística, o bien se usarán en consultas de algún tipo. Para ese caso es conveniente y recomendable que cada valor numerico vaya en su propio campo, i aplicaría la primera recomendación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 10/11/2013, 09:05
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: es posible hacer una consulta sql asin

osea que la mejor opcion seria guardar la url y en otra tabla las variables, pero para eso tendria que usar InnoDB o no es necesario y con myIsam ya valdria?
saludos.
  #7 (permalink)  
Antiguo 10/11/2013, 09:43
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: es posible hacer una consulta sql asin

bueno creo que ahora ya no tengo dudas pero antes de empezar a crear las tablas quiero tenerlo claro, bueno primero decir que seria solo para consultas de estadisticas nada mas, y las url de navegacion pueden ser asin:

mis_valores.php?valores=3&opcion=1&selecion=1
contactar.php?id=2332
selecionar.php?red=1&horario=1

osea que las estadisticas las tengo que sacar de estas dos url:

mis_valores.php?valores=3&opcion=1&selecion=1
selecionar.php?red=1&horario=1

Entonces entiendo que las tablas las tengo que crear algo asin:

tabla navegacion
id
url
fecha

tabla mis_valores
id
valores
opcion
selecion

tabla selecionar
id
red
horario

siendo el id el campo de relacion osea pk y fk.

Entonces me podeis decir si esta seria la manera correcta de hacer una estructura simple de estadisticas?
saludos.
  #8 (permalink)  
Antiguo 10/11/2013, 14:29
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: es posible hacer una consulta sql asin

con esta estructura de tablas como podria conseguir una consulta como la que postee al principio osea algo asin:

valor repeticiones
3 4
1 1
2 1

en esta ultima no me vale el substring_index que dijo jurena.

alguna ayuda para conseguir estos resultados?
saludos.
  #9 (permalink)  
Antiguo 11/11/2013, 08:50
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: es posible hacer una consulta sql asin

roboty,
necesitamos información más precisa sobre lo que quieres. Me explicaré. Dices que tienes esto:
Cita:
mis_valores.php?valores=3&opcion=1&selecion=1
contactar.php?id=2332
selecionar.php?red=1&horario=1
¿siempre es eso? quiero decir ¿siempre son esas url mis_valores.php?, conctactar.php? seleccionar.php?

¿qué valores necesitas, los correspoondientes a valores, a id, a red? ¿quieres que te devuelva si es valores, red o id también? ¿si solo es número, cuántos dígitos puede llegar a alcanzar? ¿necesitas sobrepasar ese primer nivel y quieres también los valores de opcion, seleccion, horario? ¿necesitas comparar los datos de unos y otros? ¿solo buscas los de una dirección o los de todas? De esto dependerá si usamos o no filtro de búsqueda WHERE, sea o no con expresión regular; también de eso dependen las funciones que emplearemos (SUBSTRING, SUBSTRING_INDEX, LOCATE, CHAR_LENGTH, LEFT, RIGHT, conversiones a número, etc.). También debes decirnos qué codificación usas, si UTF-8 o LATIN-1, para usar las funciones correspondientes a cada codificación.
Acláranos toda la casuística, lo que puede haber por delante de lo que buscas y por detrás, si va a ser siempre eso, etc.
Sin estas indicaciones nos será muy difícil ayudarte.

Última edición por jurena; 11/11/2013 a las 16:47

Etiquetas: campo, php, posible, sql
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 21:34.