agenda virtual

SELECT buscar datos Busca palabras de color, 3 campos de relación repartidos en 2 tablas, categorías, directorios o carpetas llamadas título y nombre; si pones el mismo, incluso repetido en formato contraseña, puedes recuperar después toda la información, manejarla, actualizarla y borrarla de forma segura. Si en el registro te identificas con palabras de color se habrá perdido el rastro.

Criterios de búsqueda. Muchas veces no nos interesa mostrar toda la tabla, sino algún dato específico de la misma. Pero para buscar uno o varios datos, debemos saber otros, por ejemplo, en la tabla “agenda” vista en páginas anteriores, para buscar el teléfono o el email de alguien, debemos saber su nombre. El criterio de búsqueda es el dato que tenemos para poder buscar los demás. es decir aquí el criterio de búsqueda será el nombre, y los datos buscados serán el teléfono y el email.

Busqueda exacta. Llamamos así a la búsqueda en la que hay que escribir el dato que conocemos (el nombre en este ejemplo) de forma completa. Para ello seleccionamos toda la tabla, y aplicamos luego la sentencia where, para buscar el registro que coincida con la condición que indiquemos.


la sentencia where se usa de la misma manera que vimos para modificar datos. Es decir, indicamos el nombre del campo, y lo igualamos al valor que debe tener. Es aquí donde establecemos el criterio de búsqueda, El resto de código php es el mismo que hemos usado para mostrar la tabla completa. Así el siguiente código nos mostrará además del nombre indicado, el teléfono y el email:


Aunque lo normal en este caso es que haya un sólo registro coincidente, seguimos utilizando el bucle while por si hubiera más de uno, en ese caso se nos mostrarían todos los registros que cumplieran las condiciones indicadas. El resultado del ejemplo anterior nos dará:


Es 1 ejemplo para indicar cómo buscar datos en 1 base, pero como puedes ver esto tal como está hecho aquí, no resulta muy eficaz, ya que lo normal es que , mediante un formulario, se recoge en 1 variable el dato que nos da el usuario (criterio de búsqueda), y se busca esa variable en la base de datos. Es así como podemos crear un buscador. El usuario introduce sus datos de búsqueda, nosotros los buscamos en la base y le devolvemos lo que hemos encontrado. El resto es cuestión de organización y presentación de la página.

Búsqueda aproximada. Sin embargo, la mayoría de los buscadores dan también el resultado aunque no sepamos el dato exacto. Esto se realiza mediante 1 búsqueda aproximada. El siguiente código MySQL nos dará como resultado todos los registros cuyo nombre comience por la letra j:


Hemos sustituido el igual (=) del código anterior por la palabra like, y además, después de la j hemos puesto el signo % (tanto por ciento). Con like indicamos que buscamos algo parecido a , de hecho aunque la j la hemos puesto en minúscula, busca tanto mayúsculas como minúsculas. El Signo de tanto por ciento, (%) es un comodín que sustituye a cualquier cadena, por lo que se buscarán todos aquellos registros en los que el campo indicado empiece por “j”. Del mismo modo, like ‘%a’ Buscará todos los registros que acaben por la letra a, ya que el comodín lo hemos puesto delante. y like ‘%s%’ buscará todos los registros que contengan en cualquier posición la letra s. Por tanto podemos hacer un buscador en el que en un formulario pedimos el nombre, o parte del nombre de un registro de la agenda, y obtenemos el resto de los datos. El problema es que si el usuario manda el formulario vacío, se verán todos los datos de la tabla, Esto se puede solucionar mediante 1 condicional, que distinga si el dato mandado contiene algún carácter. En el siguiente enlace vemos la página en la que hemos construido un buscador para la tabla “agenda”; desde esa página podrás acceder tambien a su código fuente.

Buscador para agenda.

Mostrar datos. Recoger los datos de una tabla. Hasta ahora hemos visto cómo crear, modificar o borrar datos, veamos ahora cómo mostrar esos datos en una página web. Para el ejemplo que aquí mostramos elegimos la base “miagenda”, que hemos creado en páginas anteriores. En primer lugar conectamos con MySQL y seleccionamos la base de datos:


Después escribimos la sentencia $sql, con el código para seleccionar la tabla:


Para seleccionar una tabla escribimos select * from seguido del nombre de la tabla. el asterisco (*) es un comodin que nos permite seleccionar toda la tabla. Escribimos despues la función mysql_query(), pero esta vez guardamos el resultado de la función en una variable.


Hemos guardado los datos devueltos por MySQL correspondientes a la tabla, pero estos datos no los podemos leer tal como están ya que si intentamos leerlos mediante la instrucción echo nos dará un resultado parecido a lo siguiente:


Mostrar los nombres de los campos. Para poder ver los datos necesitamos otra función: mysql_fetch_array(). Le pasaremos un único argumento que será el resultado obtenido, es decir la variable $datos. La función devuleve un array a la vez indexado y asociativo, en el que estará contenido el primer registro de la tabla. Sin embargo la función posee un puntero interno que una vez mostrado el primer registro de la tabla, pasa al siguiente, por lo que si repetimos otra vez la función, se mostrará el segundo. Lo de a la vez indexado y asociativo quiere decir que cada elemento se mostrará dos veces, una como array indexado, con su número correlativo como clave, y otra como array asociativo, en el que la clave es el nombre del campo. Por lo tanto, el siguiente código mostrará el nombre de los campos que tiene la tabla. Al mismo tiempo guarda


Mediante la función is_string() seleccionamos las claves del array que son elementos con texto, es decir, las que contienen los nombres de los campos. Al mismo tiempo hemos guardado los nombres de los campos en un array (Función array_push()) para poder utilizarlos luego para hacer una tabla. El resultado del código anterior nos dará en pantalla lo siguiente:


Mostrar los datos de los registros. La función $row=mysql_fetch_array($datos); nos muestra los datos de un único registro, y mueve después el puntero interno al siguiente registro; por lo que si queremos ver los datos de todos los registros deberemos repetirla tantas veces como registros tengamos. Para ello utilizaremos el bucle while de la siguiente manera:


El bucle se repetirá mientras lo expresado en el paréntesis dé un valor no falso, es decir, mientras no de un valor nulo. Esto garantiza que el bucle recorrerá todos los registros de la tabla. Mientras se recorren podemos mandarlos a pantalla, o guardarlos en arrays. Podemos elegir los campos de los que vamos a obtener los datos, marcando los elementos del array “$row”. El código anterior nos mostrará en pantalla los datos solicitados, lo veremos así:

Juan Buendía Perfil, 665219224, auriculajudae@hotmail.com.

Silvia Miranda, 628554799, silmir10@gmail.com.

Federico Camuñas, 657218935, fedcamun@gmail.com.

Simón Espinosa Doctor, 916940387, docespi@outlook.es.

Agueda Ruiperez, 617255493, agarupez10@ymail.com.

Esto sólo es un ejemplo, por supuesto, al hacer una página podemos ordenarlos dentro de una tabla u organizarlos de otra manera.

UPDATE Ordenar datos Variar los datos. Actualiza, corrige o cambia tus datos de registro (modo interno, otra vez en la tabla titulada nombre con su correspondiente campo clave llamao título, todos los datos). Si se nos muestran muchos datos tenemos la posibilidad de que nos salgan ya ordenados, la única variación es añadir al código MySQL la sentencia order by nombre_campo, por ejemplo:


Esto ordenará los registros de la agenda alfabéticamente de forma ascendente, según el campo “nombre” (desde la A a la Z). Si el campo indicado como criterio de ordenación es numérico, los registros se ordenarán de menor a mayor. Los podemos ordenar también de forma descendente (de la Z a la A), si añadimos despues la palabra desc


Los datos de la tabla agenda, se verán el el siguiente orden tras indicarle una ordenación ascendente.

Agueda Ruiperez, 617255493, agarupez10@ymail.com.

Federico Camuñas, 657218935, fedcamun@gmail.com.

Juan Buendía Perfil, 665219224, auriculajudae@hotmail.com.

Silvia Miranda, 628554799, silmir10@gmail.com.

Simón Espinosa Doctor, 916940387, docespi@outlook.es.

Imagina que en alguno de los registros han cambiado algunos datos, pongamos, por ejemplo que en nuestra agenda, Simón Espinosa Doctor ha cambiado de teléfono y de email. Podríamos hacer un nuevo registro y borrar el anterior, sin embargo resulta más sencillo variar simplemente los datos en el registro que ya tenemos.

El código MySQL será el siguiente:

Explicamos el código a continuación:

update tabla set :

Escribimos la palabra update seguido del nombre de la tabla y después la palabra set.
nombre_campo = ‘valor’ escribimos después el nombre del campo donde va ha efectuarse el cambio, y el nuevo valor. Si hay más de un campo que varía escrribiremos los demás separados por comas.
where :

Expresa una condición, que debe cumplirse para que los cambios anteriores tengan efecto. Escribimos la palabra where y a continuación la condición, que en este caso es que el campo “nombre” tenga el valor de ‘Simón Espinosa Doctor’.”

Si lo que insertamos en el valor es una variable, también debemos ponerla entre comillas. El código completo del ejemplo anterior será el siguiente:


INSERT Si quieres dejar tarjeta de visita mejor aquí. Insertar registros: Yo también necesito otras cuenta de Twitter, igual que muchos usuarios. Gmail permite utilizar el signo + para crear alias de correo electrónico, pues hace caso omiso de cualquier cosa después del + y entrega el correo electrónico directamente a la cuenta normal, lo que la hace perfectamente operativa en la navegación cotidiana por Internet. La áspera Menéame que sería la más parecida y otros #apps que he probao no son sitios para seguir noticias y organizar información, ni microblogging como Twitter. No me interesa algo así, lo que por desgracia es extensible a otros #SocialMedia por no se que prevenciones de personajes y agencias que nadie repararía en su existencia. No enlazan al original, ni tienen buscador propio de actualidad ni lo que ahí se mueve suele ser reseñable, lo que más necesito, apenas duplican, repiten y tripiten las mismas milongas sin intentar describirlas siquiera. No explican el enlace ni su motivo que, con frecuencia distorsionan, y puede afectar a 3ª otros usuarios que no tienen nada que ver con esas baterías de mensajes llenos de insidias y falsedades, apenas intentar dar que hablar. El hecho de que el alias o nick registrao en la base de datos de cada sitio web se pueda intercambiar por el correo electrónico con el que te has suscrito es f1damental. Se trata ni más ni menos del campo clave o llave relacional que permite que las web se puedan ver desde otras, por lo que no se puede ver el registro en la misma web pero a la vez hace que las diferentes bases de datos relacionales sean visibles 1as desde otras, y a la vez hacer las operaciones que estén permitidas a cada usuario, son solo 2: grabar y borrar de forma casi segura. Así por ejemplo y por cambio de operador que me birló el correo electrónico en el que la tenía registrada, se puede seguir viendo esa cuenta perdida en Twitter, pero no puedo acceder a ella porque también he olvidao la contraseña. Sería tan fácil como 1 vez dentro cambiar el correo electrónico del registro. Y no se trata de burlar o tratar de engañar a nadie, que sería 1 máquina de programación, como de poder relacionar los diferentes objetos, imágenes, vídeos, etc. de forma eficiente, o sea, que f1cione todo. Las bases de datos alfanuméricas que, de momento permitían evitar las repeticiones de registros, se inventaron en el siglo XVIII, las conocidas como enciclopedias y diccionarios. Las nuevas y revolucionarias inventadas por IBM en 1971, que son de hecho las que permiten que exista Internet, la inmensa base datos relacional, pues es precísamente lo relacional. Valga la red1dancia pero realmente se necesita disponer de varios e mail o de lo contrario no serían posibles las suscripciones y por tanto la participación. Debido a las advertencias de Twitter he configurao paper.li con frecuencia semanal y sin notificaciones donde he podido. @2012_blackstar sigue visible y operativa en Internet, a1que solo sea a través de las #webapp a ella asociadas, las antiguas siguen configuradas como cuando se hicieron. Estas me encantan, a1que sus autores han tenido éxito y ya disponen versión PRO, de lo que me alegro. Conozco Twitter desde 2008 y lo utilizaba como instrumento o asistente de programación casi ajeno a otros usuarios hasta #12f 2011 que empezó a ser algo comprometido. Llegaron a decirme que mi cuenta se veía demasiao, además de sufrir bloqueos antipáticos, den1cias por cualquier nimiedad y sin sin venir a cuento de gente que ni siquiera lo entendía el suyo, puesto que solo pruebo páginas web para verlas yo. Es de pena llamar la atención por éso, pero para evitame problemas necesito otras cuentas, a veces para familiares que enseño, para que vea el periódico mi padre cuando me estoy duchando y cosas diversas. Las web estáticas o murales se actualizan con información al día, no sólo fecha y hora, también meteorológica o resultaos de sorteos, y no sólo enlaces, vínculos e hipervínculos que permiten la navegación, porloque también están dotadas de cierta interactividad. El índice de rebotes, visitas inadvertidas que heyen más rápido que llegan penalizan a los editores casi tanto como los servidores caídos, pues generan tráfico sin contrapartida. Las páginas sencillas, ligeras, a veces sólo como pórtico a otras más complejas son a su manera otras base datos en su directorio o carpetas, compatibles por ejemplo conotras ventanas como ladesta calculadora o esta otra. Estos pequeños gadgets, widget o aplicaciones remiten al concepto de objeto o forma diferenciada que puede actuar por su cuenta, aplicaciones anidadas en aplicaciones mayores como muñecas rusas que ofrecen su propia salida o continuación a voluntad. Las base datos relacionales, invento clave o llave de 1970, permiten mediante la consulta SELECT ver el contenido de manera ordenada, por segmentos o partes, retrospectiva, alfabética, numérica, jerárquica por importancia, así como recuperar lo que se necesite. UPDATE, actualizar es otra orden intermedia, siempre preferible a grabar o INSERT datos o menos borrar, DELETE que se pueden ejecutar como acciones en bloque por los mismos procedimientos. Resulta imposible afrontar tareas de envergadura sin la asistencia o ayuda de base datos relacionales. La habilidad ensu manejo comienza por conocer sus peculiaridades de funcionamiento. Vamos a seguir con la tabla “agenda” que hicimos en el apartado anterior. Una vez construida la tabla el siguiente paso es insertar los datos o registros, para ello después de abrir MySQL y la base de datos insertaremos el siguiente código MySQL:


Vamos a explicar el código anterior

insert into :
Escribiremos ésto para insertar un nuevo registro, seguido del nombre de la tabla escrito entre acentos.
Nombres de los campos: Entre paréntisis escribiremos luego el nombre de los campos de la tabla, como puedes observar, éstos se escriben también entre acentos, y separados por comas. No es necesario escribir los nombres de todos los campos, sólo aquellos en los que se quieran introducir datos, los demás campos tomarán su valor por defecto.

Valores :
Insertamos después los valores, para ello escribimos la palabra value (también podemos poner values), seguido, entre paréntesis de los valores que vamos a insertar en los campos. Debemos escribirlos entre comillas (simples o dobles), y separados por comas. Recuerda que si los escribes con comillas dobles éstas deben llevar el carácter de escape : (\” … \”), si no es así se interpretaría como lenguaje php que cierra una variable de texto. El orden en el que escribamos los valores es importante, ya que se corresponde con el mismo orden en el que hemos escrito los nombres de los campos. Deben corresponderse uno a uno, ya que si no hay el mismo número de campos que de valores, se produce un error y no se realiza la operación. Por otra parte, si queremos pasar algunos datos mediante variables de php, debemos conservar las comillas; si son comillas de acento estas serán opcionales (nombre_tabla y nombres_campo); y si son comillas normales (valores) debemos ponerlas igualmente. La variable se escribirá dentro de las comillas. Código en el que insertamos varios registros más en la tabla “agenda”, lo que nos permitirá más adelante poder hacer otras operaciones.


Observa la forma de insertar varios registros, cada registro es guardado en una sentencia MySQL distinta, y es mandado mediante un mysql_query() distinto.

DELETE Borrar registros Baja en el libro de visitas (operativo en modo intranet, consiste en buscar todos los datos antes de borrar de forma segura el campo clave). Suele ser de acceso muy restringido pero de borrao seguro, poreso es tan difícil conseguirlo. Si queremos borrar de nuestra base de datos, “miagenda” algunos registros, usaremos en un código MySQL como el siguiente:



Si queremos borrar de la agenda a Federico Camuñas, el código será el siguiente:


#1j 2011 Teddy Bautista sale detenido de la SGAE hombre obediente

Deja un comentario