Estadísticas

Clicky Web Analytics

Clicky

Tu Primera Aplicación Web (3ª Parte)
Escrito por Manu   
Martes, 25 de Septiembre de 2007 00:00

A estas alturas estarás probablemente esperando la última parte de esta serie sobre tu primera aplicación web para poder empezar a unir todo lo que has aprendido en la primera y segunda parte.

Gestionando múltiples elementos

En la segunda parte terminé enseñandote como gestionar las cuentas de usuario. Ya es hora de mostrarte varias formas de manipular los datos de tu base de datos. A partir de ahora asumiré que tienes otra tabla distinta a la de usuarios en la base de datos. Si te bajas el fichero zip con el ejemplo de esta serie, tenemos la tabla de contactos. La tabla de contactos tiene 7 campos: id, nombre, calle, ciudad, estado, codigo postal y creador_por.

¿ Qué haría si quisiese listar cada contacto almacenado por un usario en particular ? Usaría un bucle while de la siguiente manera. Sin embargo, antes de mostrarte y explicarte el código dejame hablarte sobre esos 7 campos. No creo que tenga que explicar los 6 primeros así que iré directo al creado_por (created_by en inglés). Uso este campo para almacenar el nombre del usuario que introdujo el contacto. Esto me da una manera fácil de ordenar los contactos por usuario. En un formulario que he creado (form.php en este ejemplo), el nombre de usuario ($user) se almacena automaticamente en el campo creado_por cada vez que se añade un contacto. Cuando empieces a tratar con bases de datos de cierta consideración, almacenar el nombre de usuario con cada contacto puede llegar a ser excesivo. Sin embargo, para este pequeño ejemplo no se percibirá mas lentitud.

$get_contacts = "select * from contacts ".
"where created_by=’$user’ order by name, state”;
$result = mysql_query($get_contacts);

//recorre los resultados de la consulta en $get_contacts
while($contact = mysql_fetch_array($result, MYSQL_ASSOC)){
echo “<b>” . $contact[‘name’] . “</b><br />” .
$contact[’street’] . “<br />”;
echo $contact[‘city’] . “, “ . $contact[’state’] .
" " . $contact[‘zip’];
}

Primero hay una consulta $get_contacts - que recupera todos los campos (usando *) de cada uno de los contactos almacenado en la tabla contacts por el usuario conectado, $user, y entonces los ordena por nombre y estado. Entonces proceso esa consulta, la salvo como $result y entonces inicio un bucle while usando $result para quedarme con un array, $contact, el cual puedo acceder. Dentro del bucle puedo acceder cada campo de la tabla de contactos con el formato array - $contact['NOMBRE_DEL_CAMPO']. Esta secuencia de pasos se puede aplicar a distintas acciones simples de la base de datos.

Hice algunas concatenaciones en el comando "echo" con los campos, como se puede ver con los puntos el cual conecta los elementos. Cualquier elemento no-PHP debe ser puesto entre comillas siempre, mientras que no son necesarios para el PHP.

Ejemplo de aplicacion web

Un elemento de esa captura de la pantalla que no está en el código que mostré es el enlace "delete" (borrar) debajo de cada contacto. Para obtener esa funcionalidad, añadí una linea más en el código dentro del bucle.

echo "<br /><a href=’manage.php?delete=" . $contact[‘id’] . 
"‘><small>[Delete]</small></a><br /><br />";

Esta simple linea crea un enlace especial con un parámetro "delete" que se establece con el id del contacto. Es así de fácil pero no funcionará hasta que se capture el valor para ese parámetro y lo ponga en un formato que se pueda usar. Para realizar esto, primero debo añadir el siguiente código al principio del fichero.

$delete = make_safe($_GET[‘delete’]);
if($delete !== NULL){
$delete_contact = "delete from contacts ".
"where id=’$delete’";
if (!mysql_query($delete_contact)){
die(‘Error: ‘ . mysql_error());
}
header(‘Location: index.php’);
}

Tratar con parámetros en las URL de PHP es bastante fácil - obten el valor del parámetro con $_GET, el opuesto de nuestro amigo $_POST de la segunda parte. Para proteger de las vulnerabilidades por "SQL injection" las paso por mi función de confianza make_safe(). La próxima fase de manipulación de estas variables es chequear si son nulas (null), o están vacias y por tanto no están presentes en la url. Sin embargo, si tienen algún valor usi mi bucle IF para ejecutar algo de código MySQL para borrar cada contacto que tenga como id el valor de la variable $delete.

Listo por ahora

Espero que hayas aprendido bastante de PHP y MySQL para poder seguir el código en mi aplicación web de ejemplo, comprender como funciona taodo y comenzar a trabajar en tu propia aplicación. Si más dilación, aquí tienes la aplicación web de ejemplo, un sencillo gestor de contacto: webapp.zip(11Kb) (gratis para uso no comercial).

Pasé muchas horas creadno esta aplicación de ejemplo y este how to, así que si aprendiste o ganaste algo gracias a ellos por favor hazmelo saber dejando un comentario o enlazando a ellos. Como nota de aclaración, no confies en el código de estos tutoriales para salvaguardar tus preciados datos al 100%. Sólo conozco un poco sobre seguridad y no tengas duda de que podría ser facilmente vulnerado de alguna manera por un profesional.

Via: http://paulstamatiou.com/

Enlace a 1ª Parte - Enlace a 2ª Parte


Hits: 50
Comentarios (0)add comment

Escribir comentario
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
smaller | bigger

busy
 
Inicio Articulos Programacion