Mostrando entradas con la etiqueta base. Mostrar todas las entradas
Mostrando entradas con la etiqueta base. Mostrar todas las entradas

martes, 2 de febrero de 2016

[Tutorial] Reparacion de Tarjeta Madre/Placa Base Laptops

Introduccion

Antes que nada decirles que esto no es un curso completo, sin mas que nada un tipo de recoleccion de Tutoriales y Videotutoriales que les servira a mas de uno que apenas este iniciandose en esto. Antes que nada comentarles que intente buscar informacion de este tipo y no habia nada como esto en internet por lo cual me arme de valor para publicarlo :v, tambien quisiera comentarles que es recomendable que antes de iniciar este tutorial tengan un poco de conocimiento de electronica basica.


Inspeccion Visual

Lo primero y mas facil que podemos hacer para saber si una tarjeta madre esta dañada es inspeccionarla con una lupa. Para ver si un componente esta 'quemado' o 'hinchado'. Algunos ejemplos, podrian ser los siguientes:


Si por alguna razon no encontramos nada es hora de seguir el camino de la metodologia C:


Diagrama de la tarjeta madre

Este es un apartado interesante, ya que todos los componentes que se encuentran dentro de la placa del circuito impreso, podriamos dividirla en varios apartados, con los cuales podriamos encontrar el problema dependiendo de la falla en la tarjeta madre.
Algunos apartados pueden ser: el sistema de carga, Encendido, USB, etc. Un ejemplo del indice de un diagrama puede ser el siguiente:



Los diagramas los podemos encontrar usando nuestro queridisimo amigo Google! Usando algunos de estos tips para su busqueda:


Datasheet XXX
Block Diagram XXX
Schematic XXX
Diagram XXX

Donde XXX sera el modelo de la placa base o modelo de la laptop o PC. Quiero comentarles que existen infinidades de paginas que te dan los diagramas gratis pero tambien existen demasiadas que te los venden.

Ahora seria muy tedioso de alguna manera decirles cada componente de la tarjeta madre, por lo cual les dejare algunos videotutoriales y enlaces para leer y aprender.


En el siguiente enlace encontraras como leer un diagrama y lo que significa cada simbolo de los componentes electronicos:
https://learn.sparkfun.com/tutorials/how-to-read-a-schematic

De todas maneras si no te es suficiente te dejo un video de ejemplo:





Componentes SMD

Gracias a que ahora hay mas tecnologia han podido crear dispositivos mas pequeños para que los tengamos a nuestro alcance. SMD como sus siglas lo indican son dispositivos de montaje superficial. Los cuales son componentes un poco mas pequeños (que los de una placa base de CPU) montados en nuestra placa base superficialmente.

Condensadores

Los condensadores o capacitores nos sirven para almacenar energia.

  



Resistencias

Funciona ofreciendo una oposicion al paso de corriente. El problema que puede surgir es que se encuentre abierta (no deja pasar nada de corriente) o en cortocircuito (deja pasar toda la corriente).
Si con el óhmetro en todas las escalas la aguja no se mueve, estamos frente al primer caso. Si en la misma situación la aguja siempre marca el máximo, se trata del segundo. Si marca un nivel aproximado al del valor original de la resistencia, significa que está en perfectas condiciones. El valor original suele estar indicado con un código de colores, con el valor impreso sobre el componente o con un código numérico (que se puede averiguar en el manual de servicio del motherboard).





Diodos

Son pequeños componentes electrónicos que permiten el paso de la corriente en un solo sentido. Por lo tanto, el multímetro debería mover la aguja solo cuando el terminal positivo (rojo) se encuentre en la pata marcada con una línea. Si marca en ambas posiciones, significa que está en cortocircuito. Si, por el contrario, no se registran cambios estará abierto.




Transistores

Los transistores poseen tres patas (emisor, base y colector), que suelen estar identificadas con las letras E, B y C en la misma plaqueta donde se encuentran soldadas. Existen dos tipos de transistores: NPN y PNP. El primero se mide según el método que explicaremos a  continuación; para el segundo deberemos hacer lo mismo, pero con la polaridad invertida.
Posicionamos la escala del óhmetro en un valor comprendido entre x1 y x100, luego aplicamos el terminal negro (negativo) sobre la pata base y alternamos el rojo (positivo) entre las otras dos. De esta manera, tendría que haber conducción para ambos casos, y al invertir, obtendríamos un valor casi nulo. Por último, entre emisor y colector no debería de haber continuidad en ninguno de los sentidos.



  





Soldar correctamente con el cautin





Desoldar SMD





Conclusion

En pocas palabras reparar tarjetas madres conlleva un poco de dedicacion y esfuerzo, lo cual vale la pena ya que es el componente principal de una Laptop o Computadora de Casa, y ademas de ser el mas costoso, siguiendole la pantalla.

Esto es mas que nada una recopilacion, pero como no vi nada igual en la red, lo junte de una manera 'un poco ordenada' espero que a mas de uno le sea de ayuda, Saludos! 

martes, 24 de junio de 2014

[Parte 4] PHP

En esta parte de PHP intentaremos ver algo sobre base de datos y usaremos MySQL y no dare la teoria ya que pues en los minitutoriales de MySQL que se encuentran en el blog son mas que suficientes para la teoria, pero si entrare en algunos conceptos que no creo haber mencionado en los minitutorials de MySQL en la teoria.

Minitutoriales MySQL:

1.- http://arthusu.blogspot.mx/2013/03/mysql-minitutorial-parte-1.html
2.- http://arthusu.blogspot.mx/2013/03/mysql-minitutorial-parte-2.html
3.- http://arthusu.blogspot.mx/2013/03/mysql-minitutorial-parte-3.html
4.- http://arthusu.blogspot.mx/2013/03/mysql-minitutorial-parte-4.html
5.- http://arthusu.blogspot.mx/2013/05/mysql-minitutorial-parte-5.html


Normalizacion

Para poder trabajar correctamente con las bases de datos relacionales se creo un proceso llamado normalizacion el cual seguiremos para que los diseños de nuestra bases de datos sean correctos. 

Claves

Hay dos tipos de claves las claves primarias y las claves foraneas.

Una clave primaria es un identificador unico que tiene que cumplir las siguientes reglas:

* No pueden ser valores NULL
* Tener un valor que nunca cambia
* Tener un valor unico para cada registro en una tabla

Un ejemplo de clave primaria podria ser la CURP la cual su valor nunca cambia y es unico para cada persona.

La clave foranea son la representacion en la tabla B de la clave principal en la tabla A. Si tenemos una base de datos cine con una tabla peliculas y una de directores, la principal de los directores estaria vinculada con la clave foreanea en peliculas.

Nota Importante: ¨Las claves primarias es ideal que sean numeros enteros para poder obtener un mayor rendimiento.

Relaciones

Las relaciones en la base de datos se refiere a como una tabla se puede relacionar con otra tabla, de alguna manera juntandose (relacionandose). 

Las relaciones deben ser comunmente 1 a varias, ya que si son varias a varias conducen a la redundancia, por lo cual deberiamos hacer que las relaciones sean 1 a varias o 1 a 1.


Las relaciones y las claves trabajan juntos, una clave en una tabla se relacionara con una clave en otra tabla.




Podemos usar MySQL WorkBench como software para diseñar nuestras bases de datos: http://www.mysql.com/products/workbench/

Una relacion varios a varios entre dos tablas es mejor representado como dos uno-varios esas tablas tendran otra tabla como intermediario.

Las bases de datos utilizan ciertas convenciones para estar bien estructuradas. El proceso de un diseño de base de datos obtiene como resultado un ERD (entity-relationship model) o ERM (entity-relationship model). El termino "relacional" en RDBM se deriva de las tablas que son tecnicamente llamadas relacionales.

1 Forma Normal (1NF):

- Cada columna debe tener solo un valor (esto aveces se describe como ser atomica o indivisible (que un solo dato no se divida en varios))
- La tabla no puede tener grupos repetidos de datos relacionados.

Un ejemplo incorrecto para esta norma seria usar, una tabla que contiene la direccion completa de una persona, con las siguientes columnas: calle, ciudad, estado, codigo_postal, pais... ya que tiene varios valores en una columna.

Y el otro ejemplo incorrecto seria una tabla peliculas donde tenemos actor1,actor2,actor3 por que las columnas se repiten con el mismo tipo de informacion.

2 Forma Normal (2NF):

En esta forma se indica que se crearan mas y mas tablas para que no haya redundancia. Un ejemplo podria ser un director de cine, en una tabla de peliculas, en la cual el director de cine puede repetirse tantas veces como haya creado una pelicula, entonces ahi lo correcto seria crear una tabla para el director. Este tipo de llaves son foraneas de manera que se enlacen a la llave principal de la tabla principal.



Aqui puedes ver como para hacer la base de datos compatible con la segunda forma normal hemos creado varias tablas para no causar redundancia.

3 Forma Normal (3NF):

La tercera norma indica que si se cambia el valor de una tabla o se modifica tendra que cambiar el valor de otro, lo cual causaria problemas, es por eso que es mejor dejarlas como estan bien normalizadas o simplemente crear una nueva tabla para hacer referencia en ella en las otras tablas.


La normalizacion es un compromiso entre la integridad de datos, escalabilidad y simplicidad/velocidad.

Existen mas formas de normalizacion pero con llenar hasta la tercera forma normal es mas que suficiente para que tu base de datos trabaje de forma normalizada y correcta.

Les dejo un documento que puede ser leido para tomar mayor claridad sobre el asunto de la normalizacion: http://www.eet2mdp.edu.ar/alumnos/MATERIAL/MATERIAL/info/infonorma.pdf

 

lunes, 25 de marzo de 2013

MYSQL MiniTutorial Parte 3

Seguimos con estas partes de los minitutoriales de mysql, espero que la primera y segunda parte les haya gustado :D
En esta parte nos adentraremos en modificar tablas, eliminarlas, eliminar base de datos,etc....

Alias

Un alias es un apodo que le damos a una columna o tabla, esto lo hacemos por que aveces tenemos que hacer unas declaraciones muy largas, para no hacerlo asi le ponemos un apodo y solo hacemos referencia al apodo :D

La sintaxis es facil:

select nombre_columna as alias from tabla;
select nombre_columna from tabla as alias;
select nombre_columna  alias from tabla;
select nombre_columna from tabla  alias;

No siempre es necesario agregar alias con solamente agregar el apodo es suficiente.... para quedar todo mas claro veamos un ejemplo :D


como ves arriba seleccionamos apellido y nombre desde la tabla personas a esas dos columnas las llamamos nombre_completo seria su alias(apodo) y la ordenamos por nombre_completo, es decir, como ya estan concatenadas( concat() esta funcion la veremos mas adelante lo que hace es concatenar o juntar dos o mas columnas, en este caso 0x3a son los dos : en hexadecimal) order by como dijimos en la anterior parte de minitutorial de mysql lo que hace es ordenar por columna en este caso alfabeticamente como puedes ver el apellido va en orden ascendente :D


Si te das cuenta ahora la columna 1 se llama nombre_completo, si en este caso no le dieramos un nombre se llamaria algo como: concat(apellido,0x3a,nombre) aunque para hacer referencia a ella en order by podriamos hacer referencia como su numero de posicion, es decir, order by 1 :P

Les muestro una imagen como ejemplo:



Aqui de todas maneras no usamos para lo que verdaderamente seria de utilidad un alias que es para una consulta larga en columna o tabla hacer referencia a ella, pero vemos su funcionamiento que es el de dar un apodo a una columna/tabla.

Limit

Limit lo que hace es limitar como su nombre lo dice, limitar los registros que quieres seleccionar, su sintaxis es la siguiente:

select columna from tabla limit numero,numero;
select columna from tabla limit numero;

Veamos un ejemplo, como lo hacemos en todos los minitutos xD :D


Como puedes ver limitamos los registros es decir en la primera vemos como limitamos que comienze desde el registro 2 y nos devuelva 3 registros comenzando desde el mismo 2...
Nota importante: Los registros comienzan desde 0
La segunda limitamos que nos devuelva 2 registros desde el comienzo :D

Joins

En mysql existen 4 tipos de joins los cuales son: inner join,left join, rigth join, full join

Join su significado en ingles seria algo como juntar y es lo que hacemos en este caso, juntar las tablas :D siempre y cuando tengan una columna en comun....
Para no confundirlos mas vamos a ver ejemplos :D

Primero veremos la sintaxis de inner join que es lo mismo que usar join:

select columna from tabla1 inner join tabla2 on tabla1.columna1=tabla2.columna2;


Como ves en el ejemplo de arriba, juntamos las dos tablas personas y pedidos donde estan relacionados con p_id es decir tienen registros que son identicos...

entonces la consulta es mas o menos la siguiente:
selecionar apellido,nombre,fecha_pedido desde personas juntarla con pedidos donde personas.p_id=pedidos.p_id; 

en este caso no es necesario que la columna tengan los nombres identicos sino que lo importante aqui son los registros como ves al devolver los valores devuelve los registros relacionados, es decir, en personas.p_id esta 1,2,3 y en pedidos.p_id esta 1,2,3,4,5,6 los relacionados son 1,2,3 entonces devuelve 3 registros con los tres valores juntados relacionados ya :D

 Left join
Este realiza lo mismo que un join normal solo que en este caso devuelve todos los registros de la primera tabla(left) aunque esos registros sean nulos (NULL).... Veamos un ejemplo realizando lo anterior solo que como en este caso tenemos mas p_id en pedidos entonces lo realizaremos ahi el left join para que vean el resultado que produce....



Como puedes ver en este caso tenemos la misma consulta de arriba, solo que en este caso utilizamos left join y pedimos primero la tabla pedidos(left o primera tabla) entonces lo que haria es devolver todos los valores hasta que termine los p_id (identificadores) de fecha_pedido, devolviendo asi a la segunda tabla que sus columnas que son solo 3 y las otras 3 resultando nulas :D


En el caso de right join aplicamos el mismo concepto de arriba solo que en caso de ser la primera tabla por la que tomaria los registros sin importar si coinciden, seria la segunda tabla donde no tomaria si los registros coinciden que son pedidos.p_id=personas.p_id o alreves que vendria siendo lo mismo :P


Full Join 
Lo que hace un full join en si es devolver las dos tablas la izquierda(tabla1) y la derecha (tabla2).
Bueno en este caso al parecer mysql no soporta full join por lo que hay que emular hacer un full join para ello usamos union o union all (lo veremos mas adelante) para las claves repetidas :D

Un ejemplo de esto es:


Como puedes ver solamente lo que hacemos es unir un left join con un right join obteniendo asi un full join.... :D


Union y Union all

Union como su nombre lo dice lo que hace es unir dos o mas declaraciones select, es decir, podemos seleccionar dos tablas haciendo una union, pero en estos casos union tiene unas "reglas" estas son:

1.-Deben tener el mismo numero de columnas
2.-Deben contener datos similares (tipos de datos vimos en el minitutorial 1)

La sintaxis de esta es la siguiente:

select columna1,columna2 from nombre_tabla
union
select columna1,columna2 from nombre_tabla

Diferencia entre Union y Union All

Bueno la diferencia entre estas dos es solo que union selecciona valores distintos, con esto me refiero a que si tenemos valores repetidos en las columnas no los selecciona (es parecido a select distinct que vimos en el minitutorial 2)...
Pero en caso que usemos union all entonces seleccionaria todos los valores incluyendo si existen repetidos....

Veamos un ejemplo de cada uno:


Como ves tenemos 2 tablas personas y pedidos y las vamos a unir....
seleccionamos la columna nombre y la unimos con la columna clientes....
nombre y clientes son del mismo tipo varchar... y como ves seleccionamos una columna en ambos select....

entonces nos devuelve las columnas unidas...

Si se fijan bien en la columna cliente de la tabla pedidos tenemos registros repetidos y cuando usamos union no los muestra todos :/, pero para ello podemos usar en este caso union all....



Variables de usuario

Las variables son iguales que en todos los lenguajes de programacion, solo que al establecerlas lo hacemos de diferente manera, en este caso puse variables de usuario por que tambien hay variables de sistema como en cualquier otro lenguaje.....
Una variable como su nombre lo dice Cambia cuando lo aplicas en matematicas una variable es un valor desconocido pero en este caso puede cambiar en el transcurso que vayas programando....

Su sintaxis es:

SET @nombre_variable = expresion
SELECT @nombre_variable := expresion

Veamos unos ejemplos:


Lo que hacemos en la consulta anterior es establecer la variable con el nombre de version y luego seleccionamos dicha variable que contiene la version de mysql....

SET @version=version();
SELECT  @version;


Para usar := la asignacion es mas recomendable que usar = por que puede confundir con los operadores de comparacion....

Aqui como estamos asignando y no estableciendo la variable necesitamos usar select sino causariamos un error en la base de datos...

Select @num_version:=(Select+version());

Como ves aqui he usado subconsultas que veremos mas adelante... pero igual podemos usarla como en el ejemplo anterior...

select @num_version:=version();

De las dos maneras funciona en una establecemos una variable y en la otra asignamos un valor  entonces podriamos modificar la variable anterior asignandole otro valor :P


Comentarios

Los comentarios sirven para cuando estas "codeando" puedas dejar para que sirve esa parte de codigo, para cuando otros lo vean o cuando tu lo retomes entiendas que era esa parte del codigo....

En mysql existen varias formas de comentar:

/* este es un comentario multilinea */
-- comentario de una linea
# comentario de una linea



Como ves no aparece nada por que no se cuenta como algo que ejecute una accion, solo son comentarios para "comentar" codigo... xD

Subconsultas

Las subconsultas es cuando agregas parentesis en alguna declaracion esto puede ser para que sea mas "entendible" para cualquiera que lea el codigo... un ejemplo de esto:


Como ves aqui seleccionamos todas las columnas desde la tabla pedidos donde precio_pedido=100 o cliente='Nilsen' (va entre comillas simples o dobles por que es un tipo varchar....) agregamos subconsultas para que sea mas entendible al leerlo....

Una forma de verlo mas claramente seria de esta manera:


Este seria como un tipo de join limitado (join + limit LOL XD)
Com ves en la primera consulta devuelve "Subquery returns more than 1 row" esto quiere decir "Subconsulta devuelve mas que 1 fila", es decir, estamos seleccionando mas de una fila en una clausula where lo que no es correcto a como lo dice la sintaxis de where....

es por eso que luego usamos la subconsulta seleccionando un campo de la columna p_id siendo asi como un minijoin xD por que estamos seleccionando todo esto de manera que vean la diferencia de una subconsulta, aunque en este caso no seria necesario, por que es un consulta demasiado larga.....


Modificar columnas de una tabla

En este apartado veremos como modificar las tablas para agregar una nueva columna, modificar una columna, eliminar una columna :D
Veremos la sintaxis que usaremos:

ALTER TABLE nombre_tabla CHANGE nombre_viejo nombre_nuevo tipo_de_dato

ALTER TABLE nombre_tabla MODIFY nombre_columna tipo_de_dato_nuevo not null primary key,etc...

ALTER TABLE nombre_tabla ADD nombre_columna tipo_de_dato

ALTER TABLE nombre_tabla DROP COLUMN nombre_columna

Entonces solo hay que guiarnos de la sintaxis, usaremos la misma database con la que hemos estado trabajando desde el principio de los minitutos :D


En la imagen de arriba mostramos lo siguiente, tenemos 2 tablas, personas y pedidos, describimos la tabla personas para que nos muestre su columnas e informacion, despues hacemos el cambio de nombre que seria lo mas interesante y esta parte, alteramos la tabla personas cambiando el nombre donde la columna es p_id la cambiamos a id y el tipo de datos es int, cuando volvemos a describir personas podemos ver que hemos cambiado el nombre de p_id a id...

alter table personas change p_id id int;

En este caso, pues no hay mucho que explicar solo hayq ue saber la sintaxis y la logica tu la traes por defecto xD, lo que hace es modificar el tipo de datos de apellido a char enves de varchar, aunque es un ejemplo algo "estupido", puede lograrse entender el concepto :P

alter table personas modify apellido char(30);



En este caso lo que hacemos es agregar una nueva columna llamada edad, alteramos la tabla personas agregando edad como valor int sin que este nulo o vacio...

alter table personas add edad int not null;

cuando describimos la tabla podemos ver que se ha agregado la columna edad.

En este caso eliminamos una columna, alteramos la tabla personas eliminando la columna edad....
luego cuando volvemos a describir la columna edad o se encuentra por que simplemente la hemos eliminado

alter table personas drop column edad;

ya que estamos en ello una cosa que me gustaria comentar es que en el minitutorial numero 1, mostramos como podiamos eliminar todos los datos de una tabla (delete from nombre_tabla), queria comentarles que hay una manera de realizar lo mismo pero con otra consulta:

TRUNCATE TABLE nombre_tabla

Como vemos realizamos lo mismo que en el primer tutorial solo que con otra consulta :P

Modificando tablas

Con esto hemos visto como hacer para modificar todas las columnas de una tabla, pero que pasa si queremos cambiarle el nombre a una tabla? o eliminarla?
para ello solo hay que saber la sintaxis del lenguaje :P
Sintaxis...

renombrar tabla:

RENAME TABLE nombre_tabla_viejo TO nombre_tabla_nuevo

eliminar tabla:

DROP TABLE nombre_tabla

bueno veamos unos ejemplo de como usarlos.....


Como puedes ver en el ejemplo de arriba renombramos una tabla (pedidos) a orders....

rename table pedidos to orders;

la podemos renombrar como queramos solo sigue la sintaxis de arriba :P


En el ejemplo vemos como eliminamos por completo la tabla orders... mostramos las tablas y no se encuentra la tabla orders por que la hemos eliminado :D

drop table orders;


Eliminar la base de datos completa

Para eliminar una base de datos, usamos la siguiente sintaxis:

DROP DATABASE nombre_db;

Veamos un ejemplo:

Para verificar esto puedes ir al minitutorial numero 1... :D

Realizando una copia de seguridad

Para realizar copias de seguridad utilizamos un archivo binario que lo encontramos dentro de la carpeta bin de mysql en este caso uso xampp :P....


Como puedes observar ese archivo pertenece al usuario root por lo que tendremos que usar el comando sudo... entonces veamos los "tipos" de copias de seguridad que puedes realizar (Si le podemos llamar asi), puede que no este listando todos pero pueden comentar abajo si me hace falta alguno y lo agrego al minituto :D

Copia de seguridad de todas las bases de datos
como puedes ver el subtitulo en este caso hariamos una copia de seguridad de TODAS las DB ....

mysqldump --user=usuario --password=password -A > "/ruta/todas_dbs.sql"

en este caso -A significa all databases (todas las bases de datos) tambien lo podemos usar de la siguiente forma: --all-databases, si quieren mas informacion acerca de como usar mysqldump solo hay que usar la ayuda mysqldump --help

Veamos un ejemplo utilizando la opcion de arriba de hacer una copia de seguridad de todas las bases de datos:

Copia de seguridad de 1 o varias bases de datos

Pues como vistes anterior hicimos una copia de segurida de todas las bases de datos, en este caso sera 1 base de datos o varias (las que tu selecciones especificamente)....

mysqldump --user=usuario --password=password --databases DB_nombre1 DB_nombre2 DB_nombreN > "/ruta/varias_dbs.sql"

aplicando la sintaxis, veamos el ejemplo:

Copia de seguridad de 1 o varias tablas

mysqldump --user=usuario --password=password --databases DB_nombre --tables Tabla_nombre1 Tabla_nombre2 Tabla_nombreN > "/ruta/varias_tablas.sql"


Restaurar datos

Esto lo haremos conectando a mysql....

mysql --verbose -u usuario -p contraseña nombre_db < "/ruta/archivo.sql" 

tenemos los siguientes archivos creados:
solo es cuestion de usarlos....
Con el comando de arriba recupere el archivo que contenia todas las bases de datos como puedes ver abarcaria mucho asi que no puedo dejarles una "imagen completa"



Conclusion

Bueno la mayoria de lo que vimos en este tutorial es aplicable por ejemplo en el minitutorial anterior, podemos hacer por ejemplo, con limit (limitar el numero de registros que se muestran con un campo de entrada), con join juntar dos tablas donde el id sea igual(en el caso anterior no teniamos algo asi....),etc.... pero lo que mas me interesaba que aprendieran era como modificar las tablas, como modificar las columnas, como eliminar las tablas, como eliminar la base de datos, en este caso no utilizaremos un script parecido, ¿Por que? simplemente por que es peligroso utilizar esos comandos en un script ademas de que tenemos tener privilegios no es bueno hacerlo y no es muy comun hacerlo desde front-end sino desde el back-end como lo acabamos de hacer :D, en este caso utilizaremos algo para ver como juntar todo lo aprendido, o mejor dicho todo lo creado hasta ahora, haremos un sistema de login.... y si el usuario es correcto entonces que nos muestre la aplicacion del 2 minitutorial, si la contraseña es incorrecta que nos muestre un mensaje de error con el login de nuevo, y abajo en el footer que nos muestre sino estas registrado puedes hacerlo :D

Codigo fuente sistema de login: 


Login
0){
		$intento_logeo=1; //se guarda una variable donde el intento de logeo es igual a verdadero (se proporcionaron correctamente los datos)
		$_SESSION['logged']=TRUE; //creamos la sesion logged que es igual a verdadero
		$_SESSION['usuario']=$usuario; //creamos la sesion usuario que contiene el nombre de usuario
		header("Location: adm_datos.php"); //redirigimos a la pagina de administracion de datos
	}else{
		$intento_logeo=0; //sino es cierto el intento de logeo es falso (no se proporcionaron los datos correctamente)
		echo 'Usuario o password incorrectos';
		echo '
		

Iniciar sesion

Usuario:
Password:

No estas registrado?
'; } }else{ echo '

Iniciar sesion

Usuario:
Password:

No estas registrado?
'; } } ?>

El analizarlo es trabajo de ustedes :P, aunque no he explicado que count() sirve para contar pero de todas maneras, para que lo comprendan mejor esto les dejare una imagen:

Como has visto hemos modificado el script adm_datos.php por lo que colgare los dos archivos:


Administrador de datos

Administrador de datos

";
		}
mysqli_select_db($con,"alumnos");
echo '
'; echo '

Se listan todos los alumnos que asistieron a clases incluyendo su calificacion.

'; echo ''; echo ''; $registros = mysqli_query($con,"SELECT * FROM alumnos"); while($fila = mysqli_fetch_array($registros)){ echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
IdentificadorAlumnoCalificacionesAsistencias
'.$fila['id'].''.$fila['alumno'].''.$fila['calificaciones'].''.$fila['asistencias'].'
'; echo '
'; echo '

'; mysqli_close($con); } /* ###### Fin de seleccionar los registros y mostrarlos ####### */ /* #### Realiza una busqueda y muestra los resultados #### */ function buscar(){ if(isset($_POST['btn_buscar'])){ $busqueda=htmlentities($_POST['buscar'],ENT_QUOTES); $con=mysqli_connect("localhost","root","popope123"); if(mysqli_connect_errno()){ echo "Fallo al conectar con MySQL: ".mysqli_connect_error()."
"; } mysqli_select_db($con,"alumnos"); $busqueda=mysqli_real_escape_string($con,$busqueda); $seleccionar_busqueda=mysqli_query($con,"SELECT * FROM alumnos WHERE alumno like '%$busqueda%' or calificaciones like '%$busqueda%' or asistencias like '%$busqueda%' "); $coincidencias=mysqli_num_rows($seleccionar_busqueda); if($coincidencias>0){ echo '
'; echo '


'; echo ''; echo ''; while($fila2=mysqli_fetch_assoc($seleccionar_busqueda)){ echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
IdentificadorAlumnoCalificacionesAsistencias
'.$fila2['id'].''.$fila2['alumno'].''.$fila2['calificaciones'].''.$fila2['asistencias'].'
'; echo '
'; mysqli_close($con); }else{ echo "

No se encontraron resultados

"; echo '

Puedes realizar una busqueda de un registro por medio de la columna nombre,calificacion o asistencia...

'; } }else{ echo '

Puedes realizar una busqueda de un registro por medio de la columna nombre,calificacion o asistencia...

'; } /* #### Fin Realiza una busqueda y muestra los resultados #### */ } /* #### Inserta nuevos registros #### */ function insertar(){ if (isset($_POST['enviar'])){ $alumno=htmlentities($_POST['alumno'],ENT_QUOTES); $calificaciones=htmlentities($_POST['calificaciones'],ENT_QUOTES); $asistencias=htmlentities($_POST['asistencias'],ENT_QUOTES); $con=mysqli_connect("localhost","root","popope123"); if(mysqli_connect_errno()){ echo "Fallo al conectar con MySQL: ".mysqli_connect_error()."
"; } mysqli_select_db($con,"alumnos"); $rango= array("options"=>array("min_range"=>5,"max_range"=>10)); $rango2= array("options"=>array("min_range"=>0,"max_range"=>20)); if(!empty($alumno) && !empty($calificaciones) && !empty($asistencias) && filter_var($calificaciones,FILTER_VALIDATE_INT,$rango) && filter_var($asistencias,FILTER_VALIDATE_INT,$rango2) ){ $alumno=mysqli_real_escape_string($con,$alumno); $calificaciones=mysqli_real_escape_string($con,$calificaciones); $asistencias=mysqli_real_escape_string($con,$asistencias); $insert="INSERT INTO alumnos (alumno,calificaciones,asistencias) values ('$alumno','$calificaciones','$asistencias')"; if(mysqli_query($con,$insert)){ echo "

Los datos fueron insertados correctamente

"; echo '

Insertar un nuevo registro

Alumno:
Calificaciones:
Asistencias:

'; mysqli_close($con); }else{ echo "

Ocurrio un error al insertar los datos: ".mysqli_error($con) ."

"; } }else{ echo "

Los datos no se llenaron correctamente

"; echo '

Insertar un nuevo registro

Alumno:
Calificaciones:
Asistencias:

'; } }else{ echo '

Insertar un nuevo registro

Alumno:
Calificaciones:
Asistencias:

';} } /* #### Fin de Inserta nuevos registros #### */ /* #### Eliminar registros #### */ function eliminar(){ echo '

Eliminar Registros

'; $con=mysqli_connect("localhost","root","popope123"); if(mysqli_connect_errno()){ echo "Fallo al conectar con MySQL: ".mysqli_connect_error()."
"; } mysqli_select_db($con,"alumnos"); $server=htmlentities($_SERVER['PHP_SELF'],ENT_QUOTES); if(isset($_GET['id_eliminar'])){ $id_eliminar=htmlentities($_GET['id_eliminar'],ENT_QUOTES); $id_eliminar=mysqli_real_escape_string($con,$id_eliminar); $borrar="DELETE from alumnos WHERE id=$id_eliminar"; if(mysqli_query($con,$borrar)){ echo "

Registro eliminado correctamente

"; }else{ echo "

Ocurrio un error al eliminar el registro:

" .mysqli_error($con)."
"; } } echo '
'; echo '

Se listan todos los alumnos que asistieron a clases incluyendo su calificacion.Dar clic en eliminar.

'; echo ''; echo ''; $registros = mysqli_query($con,"SELECT * FROM alumnos"); while($fila = mysqli_fetch_array($registros)){ echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
IdentificadorAlumnoCalificacionesAsistenciasEliminar
'.$fila['id'].''.$fila['alumno'].''.$fila['calificaciones'].''.$fila['asistencias'].'Eliminar
'; echo '
'; echo '

'; mysqli_close($con); } /* #### Fin Eliminar registros #### */ /* #### Modificar un registro #### */ function modificar(){ echo '

Modificar Registros

'; $con=mysqli_connect("localhost","root","popope123"); if(mysqli_connect_errno()){ echo "Fallo al conectar con MySQL: ".mysqli_connect_error()."
"; } mysqli_select_db($con,"alumnos"); $server=htmlentities($_SERVER['PHP_SELF'],ENT_QUOTES); if(isset($_GET['id_modificar'])){ $id_modificar=htmlentities($_GET['id_modificar'],ENT_QUOTES); $id_modificar=mysqli_real_escape_string($con,$id_modificar); $registros = mysqli_query($con,"SELECT * FROM alumnos WHERE id=$id_modificar"); $fila = mysqli_fetch_array($registros); echo '

Alumno:
Calificaciones:
Asistencias:

'; if(isset($_POST['enviar'])){ $alumno=htmlentities($_POST['alumno'],ENT_QUOTES); $calificaciones=htmlentities($_POST['calificaciones'],ENT_QUOTES); $asistencias=htmlentities($_POST['asistencias'],ENT_QUOTES); $rango= array("options"=>array("min_range"=>5,"max_range"=>10)); $rango2= array("options"=>array("min_range"=>0,"max_range"=>20)); if(!empty($alumno) && !empty($calificaciones) && !empty($asistencias) && filter_var($calificaciones,FILTER_VALIDATE_INT,$rango) && filter_var($asistencias,FILTER_VALIDATE_INT,$rango2) ){ $alumno=mysqli_real_escape_string($con,$alumno); $calificaciones=mysqli_real_escape_string($con,$calificaciones); $asistencias=mysqli_real_escape_string($con,$asistencias); $actualizar_datos="UPDATE alumnos SET alumno='$alumno',calificaciones='$calificaciones',asistencias='$asistencias' WHERE id='$id_modificar'"; if(mysqli_query($con,$actualizar_datos)){ echo "

Los datos fueron insertados correctamente

"; }else{ echo "

Ocurrio un error al modificar los datos: ".mysqli_error($con) ."

"; } } } } echo '
'; echo '

Se listan todos los alumnos que asistieron a clases incluyendo su calificacion.Dar clic en modificar.

'; echo ''; echo ''; $registros = mysqli_query($con,"SELECT * FROM alumnos"); while($fila = mysqli_fetch_array($registros)){ echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
IdentificadorAlumnoCalificacionesAsistenciasModificar
'.$fila['id'].''.$fila['alumno'].''.$fila['calificaciones'].''.$fila['asistencias'].'Modificar
'; echo '
'; echo '

'; mysqli_close($con); } /* #### Fin Modificar un registro #### */ /* #### Salir de la sesion #### */ function salir(){ unset($_SESSION['logged']); unset($_SESSION['usuario']); session_destroy(); header("Location: inicio_sesion.php"); } /* #### Fin Salir de la sesion #### */ /* #### Sistema de modulacion #### */ $redireccion=htmlentities($_SERVER['PHP_SELF'],ENT_QUOTES); if(isset($_GET['seccion'])){ $seccion=htmlentities($_GET['seccion'],ENT_QUOTES); switch ($seccion) { case 'mostrar': seleccionar(); break; case 'buscar': buscar(); break; case 'insertar': insertar(); break; case 'eliminar': eliminar(); break; case 'actualizar': modificar(); break; case 'salir': salir(); break; default: echo "No se encontro la seccion"; break; } }else{ echo '

Administrador para los datos de la base de datos alumnos.

'; } if(isset($_GET['id_eliminar'])){ $id_eliminar=htmlentities($_GET['id_eliminar'],ENT_QUOTES); eliminar(); } if(isset($_GET['id_modificar'])){ $id_modificar=htmlentities($_GET['id_modificar'],ENT_QUOTES); modificar(); } /* #### Fin Del Sistema de modulacion #### */ ?>

Veamos el funcionamiento de todo lo que hemos visto hasta ahora :D

Los espero en el proximo minituto :D

sábado, 16 de marzo de 2013

MYSQL MiniTutorial Parte 1

Bueno amigos he estado aprendiendo un poco de mysql, y quisiera compartir los conocimientos aprendidos con toda la gente que visita el BLOG, de esta manera tambien ellos tendran algunos conocimientos; y sere lo mas claro posible para crear unas partes basicas para que todo mundo las comprenda.

Empecemos por definir que es MySQL...

Que es MySQL

MySQL es un sistema de gestion de base de datos como muchos en este caso es software libre por lo que es ampliamente usado, Mysql es de la empresa oracle.

Para mas informacion acerca de mysql Wikipedia :D

Antes que nada les quiero decir que pueden faltar conceptos por lo que son libres de comentar para modificar en lo que me haya equivocado, como les comente soy nuevo en esto y trato de introducirlos por conceptos basicos, por cierto, antes que nada les quiero decir que no les mostrare aqui como montar un servidor casero o algo por el estilo para ello hay muchos tutoriales en google y si se quieren adentrar mas en esto de mysql tienen referencia oficial que es: https://dev.mysql.com/

Bueno quiero comentarles que trabajaremos por consola para que sea mas comodo aprender la estructura del lenguaje....

Como conectar  a MySQL

hay varias maneras de conectar por Mysql en consola....

1.-manera remota (por si usan un servidor remoto para hacer las pruebas como por ejemplo 000webhost):

mysql -h host -u user -p pass

2.-modo local (desde tu pc no es necesario que indiques el host)

mysql -u user -p pass

Nota:
puedes especificar mas cosas como son -P (--port) para especificar el puerto con el que trabajaras con mysql o tambien --protocol para especificar el protocolo con el que trabajaras :P


Como puedes ver en la pantalla en este caso me conecte de manera local desde mi pc aunque no es necesario que indicara el host pero para que vean como se usa :P

Tambien se puede observar que arroja unos comandos que podemos usar como son:
help o \h - para que nos muestre la ayuda
\c - para cancelar una declaracion (cuando este mal escrita u otra cosa)
Hay unas que no muestra ahi pero son interesantes como son:
quit - para cerrar la consola de mysql
prompt - para cambiar el prompt (el prompt en este ejemplo es mysql>) si lo queremos cambiar por ejemplo a arthusu> seria de esta manera prompt arthusu> el prompt nos indica que podemos ejecutar declaraciones :P

Eso seria de los que me parecieron importantes aunque pueden ver de todas maneras con \h los demas comandos o la ayuda :P :D


Obtener informacion acerca de la version que estamos utilizando

Una de las cosas importantes al trabajar con mysql es saber la version que estamos utilizando, aunque podemos hacerlo con un select (todavia no lo he explicado) veremos tres maneras faciles :P

1.- Mysql -V indica la version
2.- Cuando abres una coneccion te muestra la version
3.- select version() - selecciona la version de mysql

Ahora veamoslo en un ejemplo para comprenderlo



Nota importante:
Siguiendo con el minitutorial quiero decirles que yo no les mostraré de la manera en que lo hacen los Videotutoriales o Tutoriales de paginas oficiales sino de manera que vayamos practicando de la misma manera que aprendemos, es decir, creemos base de datos, las mostremos, creemos tablas, las mostremos, insertemos datos, los seleccionemos, etc etc...

Creando una base de datos, mostrando base de datos, usando base de datos

Para crear una base de datos utilizamos la sintaxis:

CREATE DATABASE nombre_de_la_base_de_datos

antes que nada quiero decirles que en este caso mysql no es case sensitive (es decir no diferencia de minusculas o mayusculas) por lo que podemos usar create database name_db
CrEaTe DaTaBaSe name_db 
CREATE DATABASE name_db 
y funcionan de la misma manera....

Pero al seleccionar la base de datos o tablas o columnas si es case sensitive la verdad no se por que hicieron esto pero asi son las cosas XD :P :D

Creemos nuestra base de datos de ejemplo para nuestras practicas :D

Create Database Mis_Practicas;

por cierto siempre tenemos que cerrar nuestra declaracion (;) al terminarla de esta manera mysql sabe cuando terminamos una declaracion, sino mostraria -> que significa que sigue esperando mas declaraciones o que la termines o canceles con ; o \c (cancelas la declaracion lo comentamos arriba)


Como ves nos dice que se ha completado la declaracion correctamente....

Mostremos las bases de datos que tenemos en nuestro gestor de bases de datos Mysql :D

Show Databases;

Con esto mostramos todas las bases de datos entre ellas nos mostraria la que acabamos de crear :D


Seleccionar la base de datos que utilizaremos :D
Para seleccionar nuestra base de datos utilizamos Use DB;

Use DB;

donde DB como es el nombre de la base de datos y como indicamos anteriormente en este caso si es Case sensitive....


En este caso en la primera declaracion me equivoque a proposito para mostrar que no es lo mismo mis_practicas que Mis_Practicas, es decir, tienen que escribirlo tal y como esta, asi son mayormente las cosas en unix :P :D

Como ya estamos usando una base de datos podemos mostrar la base de datos que estamos utilizando actualmente usando

Select database();

Que es lo mismo que decir seleccioname la base de datos con la que actualmente estoy trabajando.









Creando tablas, describiendo y mostrando tablas

Tenemos seleccionada nuestra base de datos, ahora crearemos una tabla llamada personas se que hay muchos ejemplos de esto, si la he sacado de w3schools :D xD esto para hacerselos mas facil de comprender :D

La sintaxis para crear una tabla es de la siguiente manera:

Create Table nombre_de_la_tabla (Columna1 tipo_datos,Columna2 tipo_datos, Columna3 tipo_datos, etc)

Con etc me refiero que puedes agregar cuantas columnas quieras....

Y con tipo de datos el tipo de datos que usaras para ello veremos una breve descripcion de algunos tipos de datos :D

Datos de tipo texto

char(tamaño) - puede contener 255 caracteres. Puede contener letras, numeros y caracteres especiales. Un ejemplo practico seria: select cast(12345 as char(20)) as texto; la funcion cast() o convert() solo puede contener datos como son:
binary,char,date,datetime,decimal,signed(integer),time,unsigned(integer), aunque esto se salio un poco de la explicacion pero si la quieren usar para que sepan si no les llega a funcionar :P.....
varchar(tamaño) - puede contener 255 caracteres. Puede contener letras, numeros y caracteres especiales. Si tu pones mas de 255 caracteres en tamaño entonces automaticamente se convierte en tipo TEXT.
tinytext - puede contener una cadena  de 255.
text - puede contener una cadena de 65,535 caracteres.
mediumtext - puede contener una cadena de 16,777,215 caracteres
longtext - puede contener una cadena de 4,294,967,295 caracteres

hay mas  datos de tipo texto pero puse los mas basicos y ademas son los que mas se usan :P

Datos de tipo numero

int(tamaño) - puede contener numeros desde -2147483648 hasta 2147483647.
double(tamaño,digitos) - puede contener numeros decimales, en el parametro tamaño puedes indicar el tamaño de digitos que contendra a la izquierda y en digitos puedes especificar el numero de digitos a la derecha.

hay mas datos de tipo numero pero puse los mas basicos y ademas los que mas se usan :P

Datos de tipo fecha

date() - el formato que contiene es YYYY-MM-DD donde y es año m es mes y d es dia, entonces podria ser un ejemplo 2013-03-15. Soporta desde 1000-01-01 hasta 9999-12-31. Puedes usar select current_date; para que te muestre la fecha actual con el formato anterior.
datetime() - el formato que contiene es YYYY-MM-DD HH:MM:SS donde y es año m es mes d es el dia h es la hora m es minutos y s son los segundos.... un ejemplo seria:  2013-03-15 22:56:19. Puedes usar select now(); para que te muestre la fecha y hora actual con el formato anterior.
timestamp() - el formato que contiene es YYYY-MM-DD HH:MM:SS el mismo que el anterior, este tipo de dato tiene almacenado desde que unix salio, soporta un rango 1970-01-01 00:00:01 UTC hasta 2038-01-09 03:14:07 UTC. Un ejemplo practico podria ser select timestamp(now());
aunque timestamp no solo acepta el formato de arriba pero era un buen ejemplo puede aceptar otros formatos como son: YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, o YYMMDD.
time() - el formato que contiene es HH:MM:SS (hora:minuto:segundo), soporta un rando desde -838:59:59 hasta 838:59:59. Un ejemplo practico seria: select time(now()) as hora; donde as seria una alias es decir en ves de llamarse....
 time(now()) se llamara hora, muchas veces nos facilita el trabajo para no hacer consultas tan largas pero bueno me sali del tema de nuevo, pero es bueno para que supieran que significa :P
year() - soporta dos formatos de 2 digitos o 4. El de 4 digitos soporta desde 1901 hasta 2155, y el de 2 digitos desde 70 hasta 69 (representan 1970 hasta 2069). Un ejemplo seria:  select year(now());

Si quieres una referencia mas completa puedes visitar:
http://www.w3schools.com/sql/sql_datatypes.asp
o
http://dev.mysql.com/doc/refman/5.5/en/data-types.html

Bueno como ahora ya sabemos algunos tipos de datos entonces creemos nuestra tabla Personas para practicar :D

create table personas(p_id int not null auto_increment primary key,apellido varchar(50) not null,nombre varchar(50) not null,direccion varchar(50) not null,ciudad varchar(50) not null);

con esto creamos una tabla personas con las columnas p_id,apellido,nombre,direccion y ciudad cada uno con su tipo de datos..... agregamos unas cosas que no vimos como son not null para que el valor no sea nulo, es decir, no este vacio... auto_increment que es para que se autoincremente automaticamente segun vayamos agregando mas registros, primary key es para que tenga un id unico y que no se repitan cada ves que incrementemos :D

ahora vamos a ver la descripcion de la tabla podemos usar describe o desc que es su sinonimo....

desc nombre_de_la_tabla;
describe nombre_de_la_tabla;

y con esto veremos como esta formada, aca les dejo una imagen de ejemplo de la creacion de la tabla y la descripcion de como esta compuesta, donde se muestra el tipo de datos,si es null,la key que es este caso es primary la primera columna p_id, default que son los valores por defecto en este caso no agregamos ninguno y extra que son valores extras como auto_increment....


Ahora ya estamos usando la base de datos tenemos nuestra tabla Personas que tiene las columnas que indica el campo field en la descripcion.
Veamos como mostramos las tablas....

Show Tables;

Con esto mostramos todas las tablas que se encuentren en la base de datos que estamos utilizando (en este caso solo hay una tabla que es la que acabamos de crear).


Como puedes ver tambien nos muestra la base de datos Tables_in_Mis_Practicas y nos muestra la tabla  personas :D

Insertar datos y mostrarlos

Esta es una de las partes mas interesantes por que cuando insertar los datos ya puedes empezar a manejarlos, aunque en esta parte solo veremos como insertarlos de dos maneras y como mostrarlos y daremos una conclusion de todo lo visto que puede ser implementado en php de manera facil :D

Insertar los datos de manera local

bueno podemos insertar los datos de manera local utilizando, la siguiente sintaxis:

load data local infile 'ruta/archivo.txt' into table nombre_tabla;

donde ruta/archivo.txt es la ruta donde se encuentra el archivo que contiene los datos a insertar....
nombre_tabla es la tabla a la cual insertaremos esos datos....

bueno creemos un archivo entonces llamado Personas en el cual insertaremos unos datos estos datos para que funcionen bien deben ser separados por la tecla de tabulacion (tab, es una tecla con flechas cruzadas
)

Por ejemplo:



Ahi esta el archivo en el cual indicamos los datos de cada columna... es decir,
p_id  en el primer registro es 1
apellido en el primer registro es Hansen
nombre en el primer registro es Ola
direccion en el primer registro es Timoteivn 10
ciudad en el primer registro es Sandnes

y asi sucesivamente el segundo registro es el de la segunda linea, el tercer registro el de la tercera linea, por cierto deben tabular cada columna sino no funcionara el archivo :P

entonces ya tenemos nuestro archivo lo nombre personas.txt
vamos a cargarlo para insertar los registros...
antes que nada localizamos nuestra ruta del archivo:

ahora lo cargamos.... e insertamos en nuestra tabla...


como puedes ver se insertaron 3 nuevas filas que son los datos que agregamos...

Para seleccionar los datos utilizamos:

Select * from personas;

que significaria Seleccionar todos los datos desde personas....
Select - Selecciona datos
* - significa todos
from - desde
personas - es la tabla


Como puedes ver se muestran todos los registros, ahora que tenemos todo definamos ¿Que es una base de datos, que es una tabla, que es una columna, que es una fila, que es un registro? Ya despues de todo esto no creo que sea tan dificil para ustedes definirlo si es que siguieron las practicas :D XD

Que es una base de datos
Es una parte donde se almacenan todas las tablas/registros de nuestra aplicacion web.

Que es una tabla
Es una parte donde se almacenan todas las columnas/registros de nuestra aplicacion web.

Que es una fila
La fila es toda una parte de un registro, por ejemplo la primera fila seria:
1    Hansen    Ola    Timoteivn 10    Sandnes
la segunda:
2    Svendson    tove    Borgvn 23    Sandnes
y asi sucesivamente...

Que son los registros
Los registros son cada dato o celda(por ejemplo Hansen), es por eso que muchas veces como esta conformada una base de datos puedes ser vista como en excel tiene sus partes...

La otra forma de insertar datos/registros, puede ser con la siguiente sintaxis:

Insert Into nombre_de_la_tabla (columna1,columna2,culumna3,etc) values (registro1,registro2,registro3,etc);

o tambien:

insert into nombre_de_la_tabla (columna1) values (registro1),(registro2),(registro3),(etc);

o tambien:

insert into nombre_de_la_tabla values (registro1,registro2,etc);

1.-en el primer caso es mas facil se insertan los registros seleccionados en las columnas seleccionadas...
2.-en el segundo caso se insertan los registros en diferentes filas en la columna seleccionada...
3.-en el tercero se insertan los registros  en todas las columnas para esto debe coincidir con el numero de columnas....

Ahora vamos a eliminar las filas o registros para asi poder insertar de nuevo los mismos registros pero de forma diferente....

delete from nombre_de_la_tabla;

en este caso eliminamos todas las filas/registros desde la tabla personas, para poder insertar de otra manera, esta opcion la mostrare mas completo en otra parte de estos minitutos :P

entonces eliminamos todos los registros:

delete from personas;




Como puedes observar eliminamos las filas, y cuando queremos seleccionar las filas/registros ya no hay por que lo hemos eliminados pero la tabla sigue en su forma original :D

asi que insertemos nuestros registros de nuevo con la sintaxis: insert into de arriba :D

insert into personas (p_id,apellido,nombre,direccion,ciudad) values (1,'Hansen','Ola','Timoteivn 10','Sandnes');

con esto insertariamos en la tabla personas en las columnas p_id,apellido,nombre,direccion,ciudad los registros 1,Hansen,Ola,Timoteivn 10,Sandnes siguiendo el orden de las columnas se insertan los registros :D respetando el tipo de datos :P


Como puedes observar solo tenemos un registro esta bien ahora puedo mostrar la otra manera :D

insert into personas values (2,'Svendson','tove','Borgvn 23','Sandnes');


la manera que no les mostre pueden hacerla facilmente con los ejemplos anteriores no creo que haiga dificultades :P ahi tienen la sintaxis :D
Al igual que insertar la ultima fila :D...

Seleccionemos los datos de nuevo :D



Puedes seguir la sintaxis que deje arriba Select * From nombre_de_la_tabla;

Creando una aplicacion basica con PHP y MYSQL

Para terminar esta parte Crearemos una aplicacion web con php y mysql basica que lo que hara sera insertar los datos de un nuevo registro... aunque no se insertaran de manera segura pero todo el fin es para ver lo aprendido :D, por cierto lo de php no lo explicare a fondo por lo que puede visitar: http://www.php.net/


";
		}
	$database="CREATE DATABASE IF NOT EXISTS Registros";
	if(mysqli_query($con,$database)){
		echo "Base de datos creada correctamente
"; }else{ echo "Error al crear la base de datos
"; } $table="CREATE TABLE IF NOT EXISTS `Registros`.`Registros`(`id` int not null auto_increment primary key,`usuario` varchar(20) not null,`email` varchar(50) not null,`password` varchar(50) not null,`r_password` varchar(50) not null)"; if(mysqli_query($con,$table)){ echo "Tabla creada correctamente
"; }else{ echo "Error al crear tabla: ".mysqli_error($con)."
"; } $usuario=mysql_real_escape_string($usuario); $email=mysql_real_escape_string($email); $pass=mysql_real_escape_string($pass); $r_pass=mysql_real_escape_string($r_pass); mysqli_select_db($con,'Registros'); $insert="INSERT INTO Registros (usuario,email,password,r_password) VALUES ('$usuario','$email',md5('$pass'),md5('$r_pass'))"; if(!mysqli_query($con,$insert)){ echo "Ocurrio un error al ingresar los datos: ". mysqli_error($con); }else{ echo "Datos ingresados correctamente
"; } mysqli_close($con); }else{ echo "Debes llenar los datos correctamente"; } } ?> Formulario de registro
usuario:
email:
contraseña:
repite contraseña:

Bueno ahi esta el codigo basicamente lo que hace es insertar los datos, si no estan vacios y si el email es correcto, y las contraseñas iguales entonces inserta los registros quitandoles cualquier XSS o SQLI aunque ya hay formas de Bypassear la funcion mysql_real_scape_string entonces por eso no es tan seguro :P pero bueno me sali del tema xD, si los datos no son correctos envia un mensaje de error y los datos no insertan, las contraseñas son insertadas en md5, bueno todo esto se ve en este minitutoriales por eso que puse esta miniaplicacion, les dejo de tarea estudiarsela (pueden tomar como referencia este minitutorial :D ), si quieren probarla pueden hacerlo en localhost :D....

Este es el final de la primera parte, los espero en la segunda :D