Comunidad Underground Hispana  

Retroceder   Comunidad Underground Hispana > Programacion > Php


Respuesta Crear Nuevo Tema
 
Compartir en twitter LinkBack Herramientas Desplegado
Antiguo 01-ago-2012, 17:46   #1
Iron Mod Engineering
 
Avatar de Fant4sma17
 
Fecha de Ingreso: agosto-2009
Ubicación: Torre Biónica
Amigos 56
Mensajes: 6.392
Gracias: 35
Agradecido 900 veces en 541 mensajes.
Predeterminado Consulta un poco amplia!

Mi duda es un tanto específica lo que quiero hacer es algo así, quiero hacer algo así como lo que hacen las redes sociales que es buscar gente de entre x años y x años, que estén en determinada cuidad, pero con muchas mas variables, como un apellido específico etc, se que necesitaría una base de datos y todo eso, pero lo que quiero saber es mas o menos como sería el código, a ver si alguien me aclara.


Cualquier cosa que no lo entiendan me preguntan y lo intento explicar un poco mejor, poniendo mas ejemplo etc..

Saludos!
__________________




[Solo usuarios registrados pueden ver los links. REGISTRARSE]




Fant4sma17 está desconectado   Responder Citando
Antiguo 02-ago-2012, 06:48   #2
Mod recien llegado
 
Fecha de Ingreso: enero-2010
Amigos 10
Mensajes: 1.109
Gracias: 403
Agradecido 306 veces en 263 mensajes.
Predeterminado Respuesta: Consulta un poco amplia!

Buenas fantasma17,creo que entendí a lo que te refieres:
Suponemos que estamos desarrollando una red social y quieres poner un sistema de busqueda, lo primero que deberías en tu formulario añadir los controles con los que interactuará el usuario. Yo lo dividiría en pequeños grupos:
Nombre o Apellidos (con un solo control de tipo input vasta)
Nacimiento -> Este tendría varios controles dentro, un control para un rango de fecha y otro para edad)
Direccion (Todos los posibles de direccion, es decir, pais, municipio, etc...)
Aficiones (una sola o más de una aficion)
...etc

Realmente da igual como tengas el formulario siempre que la BD esté bien estructurada y tu consulta SQL este bien formulada.


Si no es esto hasmelo saber para intentar ayudarte. En caso de que sea como he indicado podrías poner algunos campos de ejemplo de la BD que quieras, y te ayudaría a elavorar tu consulta SQL con los datos de PHP.

pd: Te pongo un ejemplo con pocos campos, y quedo a la espera de tu respuesta:
En el formulario usando $_POST o $_GET (a elección del consumidor, aunque yo por URL no enviaría datos de este tipo)
cuando se da en el boton buscar, envio el value de todos los controles en los que el usuario puede asignar algun valor
Suponiendo que están todos los campos de la BD, haría lo siguiente:
Código PHP:
$SQL='SELECT * FROM Empleado WHERE ((';
#genero una variable por cada parametro recibido del form
If ($dni != '') {
  
#Valido el contenido de la variable $dni para que no contenga caracteres que generen una sql injection(de esto tu sabes)
  
$SQL=$SQL."dni='".$dni."') AND (";
}
If (
$nombre != '') {
  
#Valido el contenido de la variable $nombre para que no contenga caracteres que generen una sql injection(de esto tu sabes)
  
$SQL=$SQL."nombre='".$nombre."') AND (";
}
If (
$nacimiento != '' AND $nacimiento1 != '') {
  
#Valido el contenido de la variable de fecha para que no contenga caracteres que generen una sql injection(de esto tu sabes)
  
$SQL=$SQL."nacimiento between '".$nacimiento."' AND '".$nacimiento1."'))";
}
#Los if continuan segun la cantidad de campos que tengas, yo lo deje así
#ahora ejecutas la consulta sql con la conexión de de la bd ya establecida y si hay algun resultado lo muestras 
Es solo un ejemplo. No garantiso que funcione, y es lo que más rápido se me ocurrió para que entendieses la idea

Última edición por cuban; 02-ago-2012 a las 07:12
cuban está desconectado   Responder Citando
El Siguiente Usuario Agradeció a cuban Por Este Mensaje:
Fant4sma17 (02-ago-2012)
Antiguo 02-ago-2012, 13:42   #3
Iron Mod Engineering
 
Avatar de Fant4sma17
 
Fecha de Ingreso: agosto-2009
Ubicación: Torre Biónica
Amigos 56
Mensajes: 6.392
Gracias: 35
Agradecido 900 veces en 541 mensajes.
Predeterminado Respuesta: Consulta un poco amplia!

Vale, lo voy entendiendo, pero esto aun se sale bastante de mis conocimientos, estoy diciendo lo que quiero hacer teóricamente a ver si se puede hacer de forma práctica, luego si quiero seguir tendré que aprender de verdad php, html un poco de sql y como no el manejo de base de datos que sinceramente es un tema que no me gusta pero que tendré que aprender si quiero seguir.

Ahora imagina esto..

Tengo 3 campos que podrá rellenar el usuario, por ejemplo 3 grupos de música, quiero que si hay otro usuario que tiene esos mismo 3 grupos de música puestos ahí, al buscar te salga esa persona y si hay una persona que solo tiene 2 de los 3 grupos tuyos lo muestre también pero detrás de todos los que tienen 3. Además quiero que tenga en cuenta más "variables" como libros etc..

Hay algún documento en el que expliquen un poco como hacerlo? Es para no tener que preguntar 50 veces más..

Ya sabes si hay algo que no entiendas bien me dices y mucha gracias de verdad.

Saludos!

__________________




[Solo usuarios registrados pueden ver los links. REGISTRARSE]




Fant4sma17 está desconectado   Responder Citando
Antiguo 02-ago-2012, 14:32   #4
Moderador
 
Avatar de ajr784
 
Fecha de Ingreso: marzo-2007
Amigos 5
Mensajes: 1.444
Gracias: 17
Agradecido 264 veces en 235 mensajes.
Predeterminado Respuesta: Consulta un poco amplia!

He leido por ahí que FaceBook no usa una base de datos SQL... CHAN!!!!
Nepomuk, es una base de datos social conocida en lo que es el mundo KDE, tampoco es SQL... CHAN CHAN!!!!

A los bifes, no compliquemos la cosa. Supongamos que tu te vas a meter a trabajar con una base de datos (que a pesar de lo que dije arriba, a mi me resulta más lógico hacerlo así). Lo importante es diseñar bien tu base de datos. Luego sólo es cuestión de hacer la consulta correcta respecto a lo que quieres saber.
__________________
Hay pocas frases que me identifican tanto
Cita:
Iniciado por Cuarteto de Nos
Casi nunca veo la foto
Tuya en mi celular
Sigue ahí por la pereza
Que me da apretar "borrar"
-Enamorado Tuyo-
ajr784 está desconectado   Responder Citando
Antiguo 02-ago-2012, 15:15   #5
Mod recien llegado
 
Fecha de Ingreso: enero-2010
Amigos 10
Mensajes: 1.109
Gracias: 403
Agradecido 306 veces en 263 mensajes.
Predeterminado Respuesta: Consulta un poco amplia!

No sabía eso ajr784, Me tendré que informar a ver como funciona y que utilidad le puedo dar... mmm

Bueno fantasma, lo que estas preguntando no es de PHP, si no de consultas SQL. da igual a cantidad de valores que tengas que pasarle en PHP para generar la consulta por que con el ejemplo viste que es sencillo y se puede hacer de muchas formas mucho más prácticas que la que te mencione. Lo que necesitas es saber realizar consultas SQL, por lo que te recomiendo este post:

[Solo usuarios registrados pueden ver los links. REGISTRARSE]


Tambien estoy haciendo un pequeño documento de word donde explico mediante ejemplos como funcionan las consultas SQL(Cuando lo finalice lo subo a mi server y lo posteo en el foro como aporte), y la verdad son sensillas de realizar, y tu mismo debes estar familiarizado con ellas mediante las injecciones SQL.
cuban está desconectado   Responder Citando
Respuesta

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks están Activado
Pingbacks están Activado
Refbacks están Activado



Temas Similares
Tema Autor Foro Respuestas Último mensaje
Galeria De Regalos a zolo y Sus Pequeñas Historias 67 F, 37 Diseñadores (24-03-13) zolo Galerí­as 22 24-mar-2013 12:37
Poco Espacio Disco "C" gabryelbz Hardware 1 07-sep-2012 12:42
VA - The Piano Collection (25CD Box Set) (2007) Emmet Todo Musica 0 10-jul-2012 16:17
Inyección en media consulta knd144 SQL 2 30-jun-2012 17:06
Consulta con una prueba de vulnerabilidad drakend Hack para newbies 1 09-oct-2011 04:13



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0