12

MYSQL: Mostrar, añadir, modificar o eliminar datos con php

26 de febrero de 2009 | Etiquetas: , | Categoría: PHP

Ahora que ya sabemos como crear una base de datos, una tabla y un campo en mysql vamos a darle un poco de vidilla con mi querido php.

Conectar con la base de datos

Lo primero que tenemos que hacer es conectar con la base de datos, para ello crearemos una función, así nos ahorramos un poco de código, y ya que estamos creamos también la función para desconectar.

function Conectar(){
$link = mysql_connect("servidor","usuario","contraseña");
return $link;
}

function Desconectar($link){
mysql_close($link);
}

Acordaros de cambiar los parámetros servidor, usuario y contraseña, por los vuestros.

Realizar una consulta a una tabla

Para extraer el contenido de una tabla debemos realizar una consulta (query) a ésta, según lo que le indiquemos, nos devolverá un resultado u otro.

El procedimiento general para realizar una consulta es el siguiente:
1. Conectar con la base de datos (mysql_connect).
2. Escribir la consulta (query).
3. Enviar la consulta a la base de datos (mysql_query).
4. Desconectar de la base de datos (mysql_close).

Aunque entre los pasos 3 y 4 es donde podremos meter mano y hacer lo que nos plazca con esos datos..

Listar datos de una tabla.

$link = Conectar();
$q = "SELECT * FROM Tabla1 ORDER BY campo1 DESC";
$rs = mysql_query($q);
while ($row = mysql_fetch_array($rs)) {
		echo '<p>'.$row['campo1'].'</p>';
}
Desconectar($link);

Para a quién le suene a chino el código de arriba, os lo voy a explicar un poquito:
Variables: $link almacena la conexion a la base de datos, $q almacena la query, $rs almacena el resultado de ejecutar nuestra query en la base de datos y $row almacena el recorrido por las filas de nuestra tabla que cumplen las condiciones indicadas, $row es un array.
Bucle while: Recorre todas las filas de nuestra tabla, mientras se cumpla la condición especificada en la query.
Echo: muestra / interpreta contenido html dentro de php, para incluir una variable php dentro de ese html utilizaremos ‘.$variable.’ así podrá diferenciarla del html.
Para mostrar el contenido de un campo especifico, deberemos especificarlo en el array $row, por ejemplo si queremos mostrar el contenido de un campo de nuestra tabla llamado nombre, deberemos escribir: $row['nombre'].

Insertar, modificar y eliminar datos de una tabla.

$link = Conectar();
$q = "INSERT INTO Tabla1 (campo1, campo2) VALUES ('texto1','texto2')";
$rs = mysql_query($q);
if($rs == false) {
	echo '<p>Error al insertar los campos en la tabla.</p>';
}else{
	echo '<p>Los datos se han insertado correctamente.</p>';
}
Desconectar($link);


Insertamos los datos texto1 y texto2 en los campos campo1 y campo2.
If: Si el resultado devuelto es false, indica que no se ha ejecutado lo que le hemos indicado, si es distinto de false significará que se ha ejecutado correctamente.

$link = Conectar();
$q = "UPDATE Tabla1 SET campo1='texto1', campo2='texto2' WHERE campo3='texto3'";
$rs = mysql_query($q);
if($rs == false) {
	echo '<p>Error al modificar los campos en la tabla.</p>';
}else{
	echo '<p>Los datos se han modificado correctamente.</p>';
}
Desconectar($link);


Modificamos / actualizamos los datos que contienen campo1 y campo2 por los nuevos valores texto1 y texto2, siempre y cuando el campo3 contenga los datos texto3. Esto lo indicamos para que no nos modifique todas las filas de nuestra tabla.

$link = Conectar();
$q = "DELETE * FROM Tabla1 WHERE campo3='texto3'";
$rs = mysql_query($q);
if($rs == false) {
	echo '<p>Error al eliminar los campos en la tabla.</p>';
}else{
	echo '<p>Los datos se han eliminado correctamente.</p>';
}
Desconectar($link);


Eliminamos la fila de nuestra tabla que contenga el valor texto3 del campo texto3.

Análisis / explicación de las querys.
En los ejemplos anteriores os he puesto las consultas un poco “a lo bruto” sin explicarlas, así que voy a comentarlas un poquito por si no ha quedado muy clara la función de cada una.

SELECT * FROM Tabla1 ORDER BY campo1 DESC
El asterisco (*) indica que vamos a seleccionar todos los campos de la tabla Tabla1 y los vamos a ordenar de manera descendente (Z-A) segun el contenido del campo1.
En lugar del asterisco podriamos seleccionar campos específicos, la ordenación es algo opcional, si no lo indicamos se ordenaran de forma ascendente ASC (A-Z). También podemos limitar a que nos muestre sólo los 2 (o los que queramos) primeros resultados.
Quedaría asi: SELECT campo1, campo2, campo3, campo4 FROM Tabla1 LIMIT 2

INSERT INTO Tabla1 (campo1, campo2) VALUES (‘texto1′,’texto2′)
Insertamos en los campos campo1 y campo2 de la tabla Tabla1 los valores texto1 y texto2, debemos poner el valor asignado en el mismo orden que hemos puesto los campos.

UPDATE Tabla1 SET campo1=’texto1′, campo2=’texto2′ WHERE campo3=’texto3′
Actualizamos los campos indicados con sus nuevos valores, a cada uno el suyo, siempre y cuando el valor del campo3 sea texto3, de la tabla Tabla1.

DELETE * FROM Tabla1 WHERE campo3=’texto3
Eliminamos todos los campos de la fila de la Tabla1 en la que coincide texto3 como valor del campo campo3.

Existen muchos tipos de sentencias SQL, podéis aprender sobre todas gracias al Manual de referencia SQL.

Bueeeno, creo que esta vez me he enrrollado más de lo normal, perdonadme :D

Twittea esto Guardalo en Delicious Compartelo en Facebook

Articulos relacionados

Esta entrada se escribió el Jueves, febrero 26th, 2009 at 19:27 pm bajo la categoría PHP. Puedes suscribirte a los comentarios de esta entrada gracias al RSS feed. Puedes comentar, o realizar un trackback desde tu web.

12 Responses to “MYSQL: Mostrar, añadir, modificar o eliminar datos con php”

  1. 1
    kharlos Says:

    hola soy nuevecito en php, no se nada… pero me pareces que eres el mejor…
    con estas ayudas tuyas… creo que aprenderé algún día..
    gracias. Dios les bendiga

  2. 2
    nnatali Says:

    Hola kharlos!
    Claro que aprenderás, si te lo propones pronto le cogerás la mano y verás que no es tan dificil.
    Por cierto, soy chica no chico xD
    Gracias por tu comentario! Saludos!

  3. 3
    gabyv Says:

    como se le puede hacer para modificar uno o 2 campos, sin perder los otros campos que ya tienen informacion en la tabla, por ejemplo si en tu tabla tuvieras 5 campos ???

    Saludos y gracias.

  4. 4
    nnatali Says:

    Hola gabyv! ¿Dices algo como esto?

    DELETE campo2, campo3 FROM Tabla1 WHERE campo3=’texto3′”;

    Saludos!

  5. 5
    keila Says:

    tengo una base de datos (en phpmyadmin) con 3 tablas (noticia,categoria,comentarios) en la pagina de noticias tengo que poder poner y ver comentarios, cuando le doy agregar comentario, si lo agrega a la base de datos pero no agrega el id de la noticia y la categoria,

    este es lo que tengo en comentarios:

    <?php
    if($_GET['btne']=="Enviar")
    {
    $a=$_GET['txtn'];
    $c=$_GET['txtc'];
    $fecha=date('Y-m-d H:i:s');
    $qc=("INSERT INTO comentario (id_comentario,noticia_id,comentario,autor_comen,fecha_comen,publicado) VALUES (null,'$id','$c','$a','$fecha',0)");
    $rc=mysql_query($qc, $link) or die(mysql_error());

    }

    Desconectar($link);

  6. 6
    nnatali Says:

    ¿Y recoges bien los valores? ¿Aparecen en el Insert? Haz un echo de la query para comprobarlo y si es así revisa los campos de tu base de datos :)

  7. 7
    carlos calzadilla Says:

    Hola como estas soy carlos calzadilla de venezuela yo voy hacer un sistema y voy a trabajar con php y mysql . con symfony lo conoces???

  8. 8
    Isa Says:

    Hola, necesito mostrar los registros de una tabla agenda y luego borrar un registro que seleccionemos. Me los muestra bien, pero al borrar, no paso bien el id del registro seleccionado y no me lo borra. He probado con varias formas y casi todas son iguales pero sigue sin funcionarme.
    ¿Alguien me puede ayudar?

    Un saludo y gracias de antemano.

  9. 9
    Julio Says:

    Hola, gracias por tu deseo de compartir lo que sabes,
    una pregunta sobre la funcion conectar y desconectar
    como hago para no estar escribiendola o copiandola en todas las paginas que hago?

  10. 10
    Israel Says:

    lA VERDAD SOY NUEVO EN ESTO Y SIRVE MUCHO TODO LO QUE COMENTAS, MUCHAS GRACIAS.

  11. 11
    Cesar Says:

    hola quisiera saber como haser operaciones aritmetica en mysql
    o sea tengo que cargar los datos en una base de datos.
    tengo que canectar, agregar, y listar los datos cargados
    como tiene que ser porque soy nuevo en esto y no se como
    alguien me puede ayudar

  12. 12
    Miguel Ignacio Says:

    Gracias eres un amor

Leave a Reply