Duda Creacion Tabla SQL

S

Pues me gustaria saber como crear una tabla en sql que haga referencia a esto:

$sql="SELECT PERSONAS.APELLIDO1 AS APELLIDO1, PERSONAS.APELLIDO2 AS
APELLIDO2, PERSONAS.NOMBRE AS NOMBRE, SECCIONES.S AS SECCION,
SECCIONES.N AS NUMERO, Year(CURDate())-Year(F_NAC) AS CUMPLE FROM
PERSONAS INNER JOIN SECCIONES ON PERSONAS.ID_PERSONAS =
SECCIONES.ID_PERSONAS WHERE (((Month(F_NAC))=Month(CURDate())) AND
((DayOFMONTH(F_NAC))=DayOFMONTH(CURDate()+1))) ORDER BY SECCIONES.S,
SECCIONES.N";

O al menos decirme las variables para que las pueda añadir yo mixmo en MysQl, es que no consigo diferenciar bien las variables, se que Personas.Apellido1, Personas.Apellido2, Personas.Nombre, Secciones.s, Secciones.n, son variables, lo que no logro comprender es la fecha, no se como describirla, si la lleva ya el sistema o hay que poner esas variables.

Gracias de Antemano a TODOS.

uNbiG

create table nombre (
numero int(numerodecaracteres),
texto varchar(numerodecaracteres),
textolargo longtext,
fecha datetime, PD yo pongo int(14)
id int(numerodecaracteres) auto_increment,
key(id)
)

espero que con eso lo entiendas :>

S

Pues bien, creo que he conseguido hacer la tabla, al menos señalando los campos descritos, lo que me pone ahora es un error.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\appserv\www\html\blocks\block-cumple.php.php on line 56

y en la linea 56 tengo:

while($row=mysql_fetch_array($result))

Otra cosa, como lleno ahora la tabla creada con los datos que yo quiera? Sorry por ni inaptitud, pero es que me pasanron el codigo de un bloque y me las estoy viendo negras para hacer la tabla sql.

uNbiG

dime que tienes puesto en $result
para meter datos
mysql_query ( "insert into nombretabla (campo,campo) values ('$campo','$campo'" ) or die ( "NO VA CARAPAN! " ); xdd
venga mira a ver :>

S

¿¿Justamente tengo puesto eso, no tengo nada en result, que deberia de poner???

Creo que para introducir datos, ya me lo has explicado bien xDDD, aunq trabajo con myphpadmin ese el mysql que viene con el appserv.

uNbiG

pues en result pones
$result = mysql_query ( "SELECT * FROM nombretabla" ); y sacas todos los datos de la tabla :>

E

Sí señor! Con dos cojones! Ingeniería inversa en SQL, me mola xDDDDD Sobre todo ver que queremos crear una tabla basándonos en una select de dos tablas xDDD Sí sí, ya lo sé, en mi pueblo a eso le llaman view y en el vuestro también, pero mejor será ver de donde coño sale esa select y qué relación conceptual existe entre las dos tablas.
Pero vamos, que por hacer un create table que no quede xDDDD

P.D. Ironía razonada:
Veamos, se ve que en la tabla personas se establece una clave foránea con secciones, marcando así a qué sección pertenece cada persona. Si están separadas las tablas en dos y relacionadas por una clave será por algo, ¿no?. Y ese algo son las reglas de normalización.

La reglas de normalización se adoptaron porque el viejo estilo de poner todos los datos en un solo lugar era ineficiente y conducía a errores de lógica cuando se trataba de manipular la información.
Separando la información en función de su naturaleza y con el objetivo prioritario de evitar la repetición, conseguimos una base de datos normalizada correctamente.

Ahora bien, si quereis ir como los cangrejos y retroceder un paso hacia atrás, perfecto! aplicamos ingeniería inversa y volvemos a juntar todas las tablas en una. Ale, así sólo hay que hacer un create table ... gL! HaMiGoS! xDDD

S

Si seguramente lo que quiera hacer no sea tan dificil, quiero crear un bloque para que diga quien cumple años. Pero de mis amigos, introducidos a traves de un formulario o a mano atraves del sql o lo que sea, pero quiero ese bloque xD

S

Si si, veo que mucho opinar de los demas, pero nadie sabe hacer un bloque de cumpleaños ... xDDD asi que, no se, ya me buscare la vida, a ver si encuentro alguien que sepa de verdad.

Gracias de todas formas, ya puedes cerrar el post.

uNbiG

Eltutor eres panoli?
ya le puse como crear una tabla luego preguntó como sacar los datos lo de nombretabla es para que sepa que ahi tiene que poner el nombre de la tabla que créo

PD: leetelo entero antes de opinar
PD2: yo no me leio lo tuyo entero XD

S

Sip el unbig me contesto bien la verdad, intento ayudar al menos... no como el tutor, gracias de todas formas unbig ;)

E

#10 Se nota que el panoli eres tú. Empezando pq eres tan corto de opinar sobre mi post y después decir la gilipollez de que no te lo has leído entero. Efectivamente, si te lo hubieras leído entero (y lo hubieras entendido que ya es más complicado) a lo mejor no me llamarías panoli. Léelo y después pones cualquier pega a mi post.
#11 Lo primero (y esto también para #10) ¿entendéis la select que has puesto en #1?! Porque si la entiendes lo verías muy claro. Analicemos las partes que nos interesan de la SELECT:

SELECT
Year(CURDate())-Year(F_NAC) AS CUMPLE
FROM PERSONAS
WHERE (((Month(F_NAC))=Month(CURDate()))
AND ((DayOFMONTH(F_NAC))=DayOFMONTH(CURDate()+1)))

Si te fijas, en la tabla PERSONAS existe un campo de tipo fecha (date) llamado F_NAC donde se almacena la fecha de nacimiento del usuario.
Para que entiendas la SELECT te la voy a traducir al castellano:
Dame la diferencia de años entre el año actual y el año de nacimiento del usuario, o sea, los años que cumple
-Year(CURDate())-Year(F_NAC) -para todos aquellos usuarios cuyo mes de nacimiento sea igual al mes actual -WHERE (((Month(F_NAC))=Month(CURDate()))- y cuyo día de nacimiento sea igual al día de hoy más uno (o sea, mañana) - AND ((DayOFMONTH(F_NAC))=DayOFMONTH(CURDate()+1)))-

Con lo cual, tan fácil como tener en la tabla de usuarios un campo con la fecha de nacimiento y hacer esa select cuando quieras saber no sólo que usuarios cumplen la condiciones, sino además en la select recoger el número de años que va a cumplir. Vamos, que estaba ya hecho, pero como de SQL no tenemos ni zorra no nos hemos enterado...

Ahora bien, si quieres que te implemente eso en un bloque, me pagas 100 euros y listo. Que yo vivo de esto y no es gratis ¿sabes? xD

Moraleja: ¿Y si antes de manejar SQL nos leemos un manual y tal y tal? xDDD

gL! Aquí estoy para lo que pueda ayudar. Y joder! no esperéis que la peña responda en tiempo real que no todos accedemos al foro a cada rato.

S

Di que si, lo tuyo es ayudar.... por un modico precio.... bien campeon, hazte rico ;)

Pa ayudas asi mejor que no postees, gracias :P

Soltrac

Lo q pone #7 es la pura verdad....

Q mania con mezclar PHP y SQL cuando son 2 cosas distintas...kereis poneros a programar en PHP cuando hay gente q no sabe ni lo q es una clave foranea.

Miedo me da...cuando vuestras tablas sean grandes y tarden en cargar mas de la cuenta o tengais que hacer borrados, actualizaciones o inserciones...entonces os replanteareis lo q dice ElTutor.....

E

Gracias Soltrac. Por fin alguien con cerebro.
Lo peor de #13 es que encima se cree que no le he ayudado por no darle el código. Cuando en el último post se lo he dejado a huevo con la select y la explicación. Pero wno... que le vamos a hacer.

uNbiG

si ni siquieras has leido lo que yo he escrito amigo...
si lo hubieses leido verias que tan solo le puse como crear una tabla y el valor de $result como lo tenia que hacer.

PD: he leido otros comentarios tuyos y la verdad tan solo son criticas ...

Usuarios habituales