Ir arriba

Lenguaje: P H P
( Personal Home Page tools )

Para Free Software Foundation es software libre, flexible, potente y de alto rendimiento, necesario para gran demanda de tráfico, como Wikipedia, Facebook.

Con PHP-CLI (Command Line Interface) es posible generar archivos PDF, Flash,e imágenes en diferentes formatos.

Permite conextarse a servidores de bases de datos SQL, MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird, SQLite o MongoDB.
Puede ser ejecutado en sistemas operativos Unix, Linux, Mac OS X, Microsoft Windows, y puede interactuar con servidores de web como la versión CGI, módulo para Apache, e ISAPI.

Es alternativa a Microsoft ASP y ASP.NET (que utiliza C# y Visual Basic .NET como lenguajes), a ColdFusion de la empresa Adobe, a JSP/Java, CGI/Perl y a Node.js/Javascript.

PARADIGMA:
Nunca confies en una PC
que no puedas tirar por la ventana .!
( Wilucha )

Etiquetas
Archivo
Operadores
Matrices
Cadenas
Clases
Fechas
Funciones
My SQL
Sesiones
Formularios

PHP en acción:
Te muestro este simple ejemplo para comenzar a entender la forma como opera un programa HTML, para acceder a una página PHP. Para esto:
En el siguiente elemento HTML:

Password:     

Ingresa un pasword para acceder a una página secreta PHP. ( Ayuda: . . la clave es el esposo de tu mama )

Elementos del lenguaje PHP:
  1. ETIQUETAS O Marcas o Tags:
    Son elementos que dan forma a la webpage.
    Delimitan la sección de código PHP, usando:
    • Las etiquetas. '<?php y <?
    • Las etiquetas '<?php y <?'
    • <script lenguaje="php"> </script>

    Para funcionar las páginas en PHP alojadas en un servidor:
    • El navegador del cliente solicita el documento PHP.
    • Llega la solicitud del servidor y el servidor localiza el documento, lanza el intérprete de PHP y ejecuta todo su código.
    • Una vez ejecutado el código se genera el resultado en HTML y lo devuelve al servidor para que lo transfiera al cliente.
    • El servidor transfiere el resultado en HTML y es mostrado en el navegador del cliente.

  2. VARIABLE:
    Es una posición de memoria creada para introducir o asignar cualquier valor o dato.
    - Durante la ejecución del script el valor de la variable puede "variar" tanto de tipo como de valor.
    - En PHP no hace falta declarar la variable ya que simplemente anteponiendo el carácter $ al nombre de la variable estamos indicando que es una variable.
    - Este lenguaje "CASE SENSITIVE", diferencia entre mayúsculas y minúsculas y por ello, no es lo mismo $miVariable=valor; que $MiVaRiABle=valor; pues PHP lo interpreta como dos variables diferentes.
    - Los tipos de datos posibles que almacena una variable son:

    -
    Double Números decimales o de coma flotante
    StringCadenas de texto
    BooleanValores True o False
    ArrayTipo especial de colección de valores
    ObjectTipo especial de dato complejo

  3. Convertir tipos:
    PHP realiza la conversión de tipos en función de los operandos y del operador.
    Así, para sumar la cadena '10' y el número 20 la acción que realizaría sería convertir la primera variable a numérica y sumar 10+20=30. Esta conversión usa las funciones:
    - gettype(): Recibe el tipo de variable.
    - settype($variable,'tipo variable'): Transforma el tipo de variable del modo actual a el modo que le introduzcamos.

    Variables características de PHP:

    Argv Array de argumentos pasados en la ejecución del script.
    $_SERVER['argc']Número de parámetros pasados al script en su ejecución.
    $_SERVER['PHP_SELF']Nombre del script que se está ejecutando
    $_COOKIE Array asociativo de pares (clave, valor) pasados a través de cookies
    $_GET Array asociativo de pares (clave, valor) pasados a través de GET
    $_POST Array asociativo de pares (clave, valor) pasados a través de POST
    $_FILES Array asociativo que contiene información de los ficheros recibidos mediante POST
    $_ENV Array asociativo de pares (clave, valor) del entorno
    $_SERVER Array asociativo de pares (clave, valor) del servidor
    $_SESSION Array asociativo de pares (clave, valor) de sesión

  4. CONSTANTE:
    Valor que se mantiene igual a lo largo de la ejecución del script y suele usarse un gran número de veces.
    Su sintaxis es:
    define("nombre de la constante", valor);

    PRIMER SCRIPT PHP:
    Una vez instalados PHP y MySQL, y el servidor APACHE, escribamos nuestro primer script:

    <html>

    <body>

    <?php

    $myvar = "Hola. Este es mi primer script en PHP n";

    //Esto es un comentario es mi primer script en PHP n";

    //Esto es un comentario echo $myvar;

    ?>

    </body>

    Luego de grabar con la extensión php, subimos al servidor,
    http://mi_servidor/php/test.php,
    asì el navegador mostrarà
    "Hola. Este es mi primer script en PHP".
    Notemos en la primera línea del script
    <?php
    que delimita el comienzo de un script en PHP, y en la última colocamos
    ?>
    que delimita el final del script.

    Todas las líneas que se encuentre entre estos delimitadores deben acabar en punto y coma, excepto las sentencias de control (if, swicht, while, etc.).

    Para comentar una sola línea usamos al principio de la línea //, para varias usamos los delimitadores /* - */ .
    Para que el servidor envié texto utilizaremos la instrucción echo, ò printf similar al del C o Perl.

    La palabra myvar comienza con el signo dólar $, que indica a PHP que es una variable.
    Hemos asignado un texto a esta variable, pero también pueden contener números o tablas (arrays).
    El texto que le asignamos a la variable termina con n , que no se imprime, sirve para indicarle al navegador una nueva línea.

Etiquetas
Archivo
Operadores
Matrices
Cadenas
Clases
Fechas
Funciones
My SQL
Sesiones
Formularios

OPERADORES EN PHP:
Sirven para realizar diversas operaciones.

ESTRUCTURAS DE CONTROL:
Indican la acción debe realizar en cada caso.

  1. SELECCION:
    1. Selecciòn simple: IF:
      Utilizada para tomar decisiones según se cumpla una condición (o varias) o no. Su estructura básica es:

      if(condición/es)
      {

      acción a realizar; }

      else{

      acción a realizar en caso de que no se cumpla; }

      Otro ejemplo básico para entender mejor:

      if($edad>=18){

      Comprar cerveza; }

      else{

      echo "No puedes comprar cerveza porque no tienes 18 años"; }

      Podemos realizar condicionales mas completas como el siguiente caso:

      if(($edad>=18)&&($dinero>0)){

      Puedes comprar cerveza porque tienes 18 y tu dinero es mayor que 0; }

      else{

      echo "O no tienes dinero o no tienes los 18" ; }

    2. Selecciòn mùltiple: SWITCH:
      Toma distintas decisiones en función de distintos estados de la variable. Su sintaxis es:

      Switch (expresión)
      {
      case valor1:
      sentencia a ejecutar cuando la expresión tiene como valor

      valor1

      break

      case valor2: sentencia a ejecutar cuando la expresión tiene como valor

      valor2

      break

      default:
      sentencia a ejecutarse por defecto, cuando no se cumpla ninguna de las condiciones anteriores.

      }

  2. ITERACION:
    1. Bucle FOR:
      Se usa para repetir una misma operación un número determinado de veces. Su sintaxis es:

      for (inicialización;condición;actualización)
      {

      sentencia a ejecutar mientras se cumpla la condición
      }

      El bucle for tiene 3 partes:

      • Inicialización:
        Se ejecuta tan solo al iniciar por primera vez el bucle. En esta parte se suele colocar la variable que contara el numero de veces que se repite el bucle.
      • Condición:
        Es la condición que se evaluara cada vez que se inicie el bucle. Esta condición es la que determina la duración del bucle.
      • Actualización:
        Sirve para indicar los cambios que queremos ejecutar en las variables cada vez que se ejecuta el bucle.

      Ejemplo:

      for($i=1;i<=10;i++){

      echo "El número actual es".$i; }

      De esta forma escribiría todos los números contenidos entre 0 y 10.

    2. Bucle WHILE:
      Se usa cuando queremos repetir la ejecución de unas sentencias un número indefinido de veces. Su sintaxis es la siguiente:

      while(condición)
      {

      sentencia a ejecutar
      }

      Para entender mejor el uso de while nos serviremos del siguiente ejemplo:

      while($color != "rojo"){

      color= dame un color; }

      En este caso siempre y cuando el color no sea rojo nos dirá que introduzcamos un color.

    3. Bucle DO...WHILE:
      Se usa cuando no sabemos el número de veces que va a ejecutarse un bucle pero lo que si tenemos claro es que por lo menos una vez si que se ejecutara la acción. Su sintaxis es:

      do
      {

      sentencia a ejecutar
      }

      while(condicion)

    4. BREAK:
      Se usa para detener el bucle y dejar de interpretar el código que sigue después de el break

    5. CONTINUE:
      Sirve para volver al principio del bucle desde cualquier parte del bucle.

  3. FUNCION EN PHP:
    La función es un conjunto de rutinas y acciones que el script ejecutarà varias veces; puede se llamada desde cualquier punto del script luego ejecutada. La función puede recibir parámetros externos de los cuales dependa el resultado. La sintaxis usada es:
    • Estructura:

      function nombre(parámetros)
      {

      instrucciones de la función

      }

    • Llamada:

      nombre(parámetros)

      Ejemplo: Función que realice la suma de dos números y muestre el resultado

      function sumar($sumando1,$sumando2){

      $ suma=$sumando1+$sumando2

      echo $sumando1."+".$sumando2."=".$suma;

      } sumar(5,6)

Destacamos que las variables que declaremos dentro de la función solo existirán o tendrán dicho valor dentro de la función y cuando no sabemos el número de parámetros que le pasaremos a la función debemos usar las funciones:
- func_num_args() Numero de parámetros que se le han pasado a la función
- func_get_args() Devuelve un elemento de los que forman la lista de argumentos

Etiquetas
Archivo
Operadores
Matrices
Cadenas
Clases
Fechas
Funciones
My SQL
Sesiones
Formularios

MATRICES (ARRAY):
Un array es un conjunto de variables agrupadas bajo un único nombre. Cada variable dentro de la matriz se denomina elemento. Dentro de la misma matriz pueden existir variables de diferentes tipos y no es necesario que sean todas del mismo tipo.

Hay que diferenciar entre los dos tipos de matrices existentes:

En caso de no indicarle una posición el array tomara el valor siguiente al ultimo valor introducido.Ejemplo: $nombres[]='Lucas' // tomaría como valor 1 ya que lo ultimo introducido era 0.

Mediante array() en el cual le pasamos los elementos como parámetros. En caso de matriz indexada toman la posición que ocupan en la creación de la matriz, mientras que los de la matriz asociativa se les asigna su valor mediante "=>".

Ejemplo: $amigo=array('Nombre'=>'Jose','Direccion'=>'Neopatria 21'); Cabe destacar que PHP no solo se limita a la existencia de matrices por sí solo sino que existen matrices de matrices, o lo que es lo mismo, matrices multidimensionales.

Ejemplo: $amigos[2]['Pedro'] Recorrido de una matriz Disponemos de diversas herramientas para poder acceder a los elementos de una matriz. En cada momento se mantiene una referencia del elemento de la matriz al que se tiene acceso, por tanto, para recorrer una matriz bastará con modificar dicha referencia. En caso de una matriz indexada el recorrido se realizara mediante un bucle y para ello debemos saber el número de elementos totales que posee la matriz. Para ello nos basamos de la función count(variable) donde variable representa la variable de la que se quiere obtener el número de elementos. Si variable es una matriz devuelve el número de elementos que tiene, devuelve 1 si solo tiene un elemento (aunque no sea matriz) y 0 si no tiene ningún valor.

Otra función que nos permite saber el número de elementos es sizeof(matriz) . Para acceder a los elementos de una matriz asociativa debemos usar la función ecah() que recupera el par formado por clave y valor y además avanza una posición de puntero. Su sintaxis es each(matriz) y los valores que devuelve la matriz asociativa son los siguientes:
ClaveSignificado
0Nombre de la clave
1Valor asociativo de la clave
Keykey Nombre de la clave
ValueValor de la clave

La función que realiza el constructor list(variable1,variable2...variableN) es asignar los valores del elemento actual de una matriz a las variables indicadas como parámetro.

Navegación sobre matrices: Cuando se trata de matrices indexadas la navegación es sencilla ya que tan solo basta acceder al elemento que queremos mostrar, pero al tratarse de alguna matriz asociativa no se puede aplicar el mismo tratamiento. Para ello existen un conjunto de funciones prefabricadas que nos permiten realizar multitud de acciones:

Sintaxis Acción

reset(matriz); El puntero interno vuelve a la primera posición

end(matriz); El puntero interno va a la ultima posición

next(matriz); El puntero va al elemento siguiente

prev(matriz); Accede al elemento anterior

Current(matriz); Devuelve el contenido del elemento actual

Inserción de elementos Para la inserción de elementos dentro de un array existen una serie de funciones que nos permiten añadir elementos. Entre ellas destacamos:

array_push(matriz,variable1,variableN); Añade elementos al final de la función y su longitud se incrementara tantos elementos como se hayan añadido

array_unshift(matriz,variable1,variableN); Añade elementos al principio de la función desplazando a los otros tantas posiciones como elementos haya.

array_pad(matriz,nuevo_tamaño,valor_relleno); Aumenta el tamaño de la matriz empleando un valor proporcionado como relleno.

Eliminación de elementos array_shift(matriz); Elimina el primer elemento de la matriz array_pop(matriz);

Elimina el último elemento de la matriz array_splice(entrada,pos_ini,[tamaño],[sustitutos]);

Se usa para reemplazar o borrar el contenido de una porción de matriz, para ello debemos especificar la posición desde la cual queremos iniciar el borrado o sustitución, el tamaño o número de elementos que se verán afectados y los sustitutos (en caso que deseemos sustituirlo por algún elemento).

array_keys(matriz,[valor buscado]);

Se emplea cuando deseamos eliminar un elemento cuya posición desconocemos. array_values(matriz);

Devuelve una matriz indexada con todos los valores almacenados en la matriz pasada como parámetro. Manipulación masiva de matrices

array_walk(matriz,nombre_de_la_funcion,lista_parametros);

Se emplea para realizar el mismo proceso definido en la función en todos los elementos incluidos.

Otras funciones

En este apartado se comentaran una serie de funciones (no todas porque seria imposible) que nos pueden servir en cierto momento. compact() Devuelve una matriz asociativa a partir de un numero indeterminado de parámetros

extract() Crea variables desde matriz asociativa

array_unique() Devuelve matriz sin datos repetidos ya que algunos se eliminan

array_reverse() Devuelve matriz con mismos elementos pero en orden inverso

shuffle() Modifica el orden de elementos de forma aleatoria

array_count_values() Devuelve una matriz asociativa que contiene frecuencias de repetición de los valores de la matriz in_array() Permite comprobar si un valor esta en la matriz

array_merge() Combina elementos de dos matrices en 1.

Para crear matrices en PHP existen dos formas:

- De forma implícita, que consistiría en indicarle el elemento (ya sea proporcionando su posición o su clave).Ejemplo: $nombres[0]='Javier';

En caso de no indicarle una posición el array tomara el valor siguiente al ultimo valor introducido.Ejemplo:

$nombres[]='Lucas' // tomaría como valor 1 ya que lo ultimo introducido era 0.

- Mediante array() en el cual le pasamos los elementos como parámetros. En caso de matriz indexada toman la posición que ocupan en la creación de la matriz, mientras que los de la matriz asociativa se les asigna su valor mediante "=>".Ejemplo: $amigo=array('Nombre'=>'Jose','Direccion'=>'Neopatria 21');

Cabe destacar que PHP no solo se limita a la existencia de matrices por sí solo sino que existen matrices de matrices, o lo que es lo mismo, matrices multidimensionales. Ejemplo: $amigos[2]['Pedro']

Recorrido de una matriz
Para poder acceder a los elementos de una matriz: En cada momento se mantiene una referencia del elemento de la matriz al que se tiene acceso, por tanto, para recorrer una matriz bastará con modificar dicha referencia. En caso de una matriz indexada el recorrido se realizara mediante un bucle y para ello debemos saber el número de elementos totales que posee la matriz. Para ello nos basamos de la función count(variable) donde variable representa la variable de la que se quiere obtener el número de elementos. Si variable es una matriz devuelve el número de elementos que tiene, devuelve 1 si solo tiene un elemento (aunque no sea matriz) y 0 si no tiene ningún valor.

Otra función que nos permite saber el número de elementos es sizeof(matriz) . Para acceder a los elementos de una matriz asociativa debemos usar la función ecah() que recupera el par formado por clave y valor y además avanza una posición de puntero. Su sintaxis es each(matriz) y los valores que devuelve la matriz asociativa. La función que realiza el constructor list(variable1,variable2...variableN) es asignar los valores del elemento actual de una matriz a las variables indicadas como parámetro.

Etiquetas
Archivo
Operadores
Matrices
Cadenas
Clases
Fechas
Funciones
My SQL
Sesiones
Formularios

CADENAS DE CARACTERES:
Una cadena consiste en una secuencia de caracteres que se encuentran comprendidos entre unos delimitadores que pueden ser:
- Comillas simples ' '
- Comillas dobles " "
- Documento incrustado <<< >>>

Si se desea por ejemplo unas " " dentro de las comillas de la cadena de es necesario realizar la acción que se denomina escapar un carácter que consiste en precederlo de una es decir ". Los caracteres especiales que pueden aparecer dentro de un documento con delimitación son:

Secuencia

Significado

n

Nueva línea

r

Retorno de carro

t

Tabulación horizontal

Barra invertida

$

Signo de dólar

"

Comillas dobles

[0-7]{1,3}

Carácter ASCII que coincide con el numero octal

x[0-9A-Fa-f]{1,2}

Carácter ASCII que coincide con el numero hexadecimal

El caso de documento incrustado es diferente al de ambas comillas. Su sintaxis es:

- <<<Identificador
- Cadena de caracteres
- Identificador;

El resultado obtenido con documento incrustado es el texto mostrado igual que se ha introducido.
- La función chr(valor) nos devuelve en una variable del tipo cadena el carácter de la tabla de códigos ASCII asociado a un valor que recibe como parámetro, el valor que se pase debe estar entre 0 y 255.
- La función ord(cadena) nos devuelve un número entero que se corresponde con el código ASCII del primer caracter que recibe como parámetro.

Etiquetas
Archivo
Operadores
Matrices
Cadenas
Clases
Fechas
Funciones
My SQL
Sesiones
Formularios

C L A S E S:
PHP que no es un lenguaje orientado a objeto, posee características que permiten definir las clases, de modo que sirven hacer el código más legible, reutilizable y más rentable por su portabilidad a otras aplicaciones y su mantenimiento.

Las Clases no son más que una serie de variables y funciones que describen y actúan sobre algo; así para crear la clase automóvil, la cual tendrá diversas variables, $color , $ , $marca, $potencia, $matricula y habrá una serie de funciones que actuarán sobre la clase automóvil como Precio(), Acelerar() , Frenar() , Girar() y Reparar().

Ejemplo: Crear la clase mysql, para realizar consultas a las bases de datos MySQL.


  <?php
  class DB_mysql {
  /* variables de conexión */
  var $BaseDatos;
  var $Servidor;
  var $Usuario;
  var $Clave;
  /* identificador de conexión y consulta  */
  var $Conexion_ID = 0;
  var $Consulta_ID = 0;
  /* número de error y texto error */
  var $Errno = 0;
  var $Error = "";
  /* Método Constructor: Cada vez que creemos una variable
  de esta clase, se ejecutará esta función  */
  function DB_mysql($bd = "",  $host = "localhost", $user = "nobody", $pass =  "") {
  $this->BaseDatos = $bd;
  $this->Servidor = $host;
  $this->Usuario = $user;
  $this->Clave = $pass;
  }
  /*Conexión a la base de datos*/ 
  function conectar($bd, $host, $user,  $pass){
  if ($bd != "")  $this->BaseDatos = $bd;
  if ($host != "")  $this->Servidor = $host;
  if ($user != "")  $this->Usuario = $user;
  if ($pass != "")  $this->Clave = $pass;
  // Conectamos al servidor
  $this->Conexion_ID =  mysql_connect($this->Servidor, $this->Usuario, $this->Clave);
  if (!$this->Conexion_ID) {
  $this->Error = "Ha fallado la  conexión.";
  return 0;
  }
  //seleccionamos la base de datos
  if  (!@mysql_select_db($this->BaseDatos, $this->Conexion_ID)) {
  $this->Error = "Imposible abrir  ".$this->BaseDatos ;
  return 0;
  }
  /* Si hemos tenido éxito conectando devuelve
  el identificador de la conexión, sino  devuelve 0 */
  return $this->Conexion_ID;
  }
  /* Ejecuta un consulta */
  function consulta($sql= ""){
  if ($sql == "") {
  $this->Error = "No ha  especificado una consulta SQL";
  return 0;
  }
  //ejecutamos la consulta
  $this->Consulta_ID =  @mysql_query($sql, $this->Conexion_ID);
  if (!$this->Consulta_ID) {
  $this->Errno = mysql_errno();
  $this->Error = mysql_error();
  }
  /* Si hemos tenido éxito en la consulta  devuelve
  el identificador de la conexión, sino  devuelve 0 */
  return $this->Consulta_ID;
  }
  /* Devuelve el número de campos de una  consulta */
  function numcampos() {
  return  mysql_num_fields($this->Consulta_ID);
  }
  /* Devuelve el número de registros de  una consulta */
  function numregistros(){
  return  mysql_num_rows($this->Consulta_ID);
  }
  /* Devuelve el nombre de un campo de una  consulta */
  function nombrecampo($numcampo) {
  return  mysql_field_name($this->Consulta_ID, $numcampo);
  }
  /* Muestra los datos de una consulta */
  function verconsulta() {
  echo "<table border=1>n";
  // mostramos los nombres de los campos
  for ($i = 0; $i <  $this->numcampos(); $i++){
  echo  "<td><b>".$this->nombrecampo($i)."</b></td>n";
  }
  echo "</tr>n";
  // mostrarmos los registros
  while ($row =  mysql_fetch_row($this->Consulta_ID)) {
  echo "<tr> n";
  for ($i = 0; $i < $this->numcampos();  $i++){
  echo  "<td>".$row[$i]."</td>n";
  }
  echo "</tr>n";
  }
  }
  } //fin de la Clse DB_mysql
  ?>
Así, para crear una clase usamos la sentencia class, además creamos una función con el mismo nombre que la clase, a esa función se le llama constructor y se ejecutará cada vez que definamos una variable de esa clase. Aunque, no es obligatorina variable de esa clase, ni crear un constructor en una definición de clase.

El operador ->; , indica una variable o método (parte derecha del operador) de una clase (parte izquierda del operador).
Para hacer referencia a la clase que estamos creando dentro de su definición, debemos utilizar this.

Ejemplo: Si el código anterior lo hemos guardado en un fichero llamado clase_mysql.inc.php.


  <body>
  <html>
  <?php
  require  ("clase_mysql.inc.php");
  $miconexion = new DB_mysql ;
  $miconexion->conectar("mydb",  "localhost", "nobody", "");
  $miconexion->consulta("SELECT *  FROM agenda");
  $miconexion->verconsulta();
  ?>
  </body>
</html>

Etiquetas
Archivo
Operadores
Matrices
Cadenas
Clases
Fechas
Funciones
My SQL
Sesiones
Formularios

F E C H A S:
El Tiempo suele tomarse con respecto al inicio de la "era UNIX" que es el 1 de enero de 1970 a las 00:00:00. y orientadas a la obtención y representación en diferentes formatos, cuyas funciones mas comunes son:

Estableciendo horas y fechas:
Luego de obtener la fecha actual, es necesario fijar una determinada hora, para un evento, por ejemplo la fecha de caducidad de una cookie a una determinada hora. Para esto PHP dispone las funciones:

Validación de fechas:
Cuando es necesario la creación de un sistema para comprobar si la fecha introducida por el usuario es valida o no, pueden usarse las funciones:
- checkdate(mes,dia,año); Comprueba que la fecha introducida sea correcta .
- strtotime(cadena_fecha); Comprueba que la cadena de fecha sea correcta. Para ello la fecha debe estar en formato ingles, es decir, mm/dd/aa

Etiquetas
Archivo
Operadores
Matrices
Cadenas
Clases
Fechas
Funciones
My SQL
Sesiones
Formularios

LENGUAJE SQL Y PHP:
Desarrollamos el lenguaje SQL porque posteriormente usaremos las conexiones de PHP con MySQL.

CREATE TABLE Nombre_tabla (Campo1Tipo_datoNot Null, Campo2 Tipo_dato, PRIMARY KEY (Campo3)); Esto nos crearía una tabla con 3 campos de los cuales Campo3 es un valor único, es decir, que no puede ser sobreescrito. Para eliminar una tabla usaremos: DROP TABLE Nombre_tabla; Para modificar la estructura de la tabla usaremos la siguiente sintaxis: ALTER TABLE Nombre_tabla [ADD Nombre_atributo Definición] //Añadiría un nuevo campo [CHANGE AntiguoNombreAtributo NuevoNombreAtributo Definición] //Cambiaría un campo [DROP NombreAtributo]; //Borraría un campo

Los índices son una estructura de acceso que permiten organizar los datos contenidos en una tabla. Para crear un índice usamos:

CREATE [UNIQUE] INDEX NombreIndice ON Tabla (Campos);

Manipulación de datos
- Inserción de datos: Para insertar datos en la tabla se realiza mediante el comando insert y su sintaxis es:

INSERT INTO NombreTabla [Campo1,Campo2...CampoN] VALUES (Valor1,Valor2...ValorN);

- Consultas de datos: Usamos el comando SELECT y la sintaxis es: SELECT ([*]/[Atributos]) FROM Tabla/s [WHERE ListaCondiciones] [GROUP BY Campo] [HAVING ListaCondiciones] [ORDER BY Campo]

Existen un conjunto de funciones dentro de las consultas de datos que nos permiten obtener información o realizar operaciones con respecto a las filas. Las funciones son:

función Descripción
COUNT(*/DISTINCT Campo) Cuenta el numero de filas
SUM(Campo) Suma los valores del atributo indicado
AVG(Campo) Obtiene la media aritmética del atributo
MAX(Campo) Obtiene el valor máximo del atributo
MIN(Campo) Obtiene el valor mínimo del atributo

  • Eliminación de datos: Requiere la sentencia DELETE cuya sintaxis es: DELETE FROM NombreTabla [WHERE Condición];

    CONEXIÓN CON MYSQL:
    MySQL es un gestor de bases de datos usado en entornos donde se emplea PHP, que dispone funciones que se compaginan con MySQL, y cuya forma genérica de obtener información de tablas en Mysql es:
    - Conexión con el gestor.
    - Preparación de la consulta SQL.
    - Ejecución de la consulta.
    - Procesamiento del resultado obtenido en el cursor.
    - Liberación de recursos (esta es opcional, aunque es recomendable).
    - Cierre de la conexión con el gestor.

    A tal fin, se dispone de las siguientes funciones:
    Función Descripción
    mysql_connect("host","usuario","password") Establece la conexión con el servidor. Recibe el host y el usuario y contraseña con el que debe conectar.
    mysql_select_db("base de datos",conexión) Selecciona la base de datos sobre la cual se va a trabajar
    mysql_query(consulta,conexión) Ejecuta la consulta SQL indicada como primer parámetro.
    mysql_num_fields(cursor) Devuelve el numero de atributos que figuran en el cursor que se le pasa como parámetro y en el que se almacena el resultado de la consulta
    mysql_fetch_row(cursor) Avanza a la siguiente posición de la fila en cursor. Devuelve un array que contiene en sus celdas cada uno de los valores de los atributos de la fila.
    mysql_free_result(cursor) Libera los recursos asociados al cursor.
    mysql_close(conexion) Cierra la conexion establecida con mysql_connect.

    La integración de PHP y MYSQL, tiene funciones que permiten acceder a las diferentes estructuras de la base de datos. Algunas de ellas:

    Función Descripción
    mysql_list_dbs(conexion) Devuelve en un cursor los nombres de las bases de datos disponibles en el servidor al que se haya conectado con mysql_connect
    mysql_list_tables(base_datos,conexion) Devuelve en un cursor los nombres de las tablas disponibles en la base de datos.
    mysql_tablename(cursor,numero_fila) Devuelve el nombre de la tabla o base de datos en la que esta el cursor indicado
    mysql_field_name(cursor,numero_col) Devuelve el nombre del campo cuyo índice se pasa como segundo parámetro
    mysql_field_type(cursor,numero_Col) Devuelve el tipo del campo cuyo índice se pasa como segundo parámetro
    mysql_field_len(cursor,numero_col) Devuelve la longitud del campo cuyo índice se pasa como segundo parámetro
    mysql_field_flags(cursor,numero_col) Devuelve una serie de indicativos correspondientes a características del atributo cuyo índice se pasa como segundo parámetro
    mysql_affected_rows(conexion) Devuelve el numero de filas afectadas por una actualización o borrado
    mysql_change_user(usuario,password) Cambia de usuario
    mysql_create_db(basedatos) Crea una base de datos con el nombre pasado por parámetro
    mysql_drop_db(basedatos) Elimina la base de datos pasada por parámetro
    mysql_insert_id(cursor) Devuelve el valor generado para un AUTOINCREMENT

    Etiquetas
    Archivo
    Operadores
    Matrices
    Cadenas
    Clases
    Fechas
    Funciones
    My SQL
    Sesiones
    Formularios

    SESIONES:
    Una web compone una serie de páginas interrelacionadas, por ejemplo, la página donde es necesario estar registrado para poder acceder a ellas ya que en función de la categoría del usuario nos permitirá acceder a unas secciones o otras.
    En estas aplicaciones será necesario ir comprobando los permisos de usuario y para ello usamos un elemento en PHP denominado " sesiones".

    La sesión se inicia cuando un usuario entra en la aplicación web y finaliza cuando el usuario abandona la aplicación.
    Durante ese tiempo manipulamos las variables que se inician al iniciar la sesión y mantener un tipo de información común entre todas las páginas.
    Mantener esta información constante requiere que los datos se guarden en un fichero ya sea en el cliente (cookies) o en el servidor (en caso de que tenga desactivado las cookies).
    Para diferenciar los diferentes usuarios existe una solución básica que consiste en un identificador de sesión diferente en cada caso.
    Este identificador de sesión será enviado de una pagina a otra para mantener la sesión activa (a menos que en la configuración del servidor tengamos activada la opción session_trans_id) y también es necesario pasar el identificador de sesión en los formularios como un campo HIDDEN. Ejemplos:

    - Hipervínculo: <a href="pagina.php?<? =SID ?>">Entrar</a>

    - Formulario <input type="hidden" name="session_name()" value="SID">

    Funciones de gestión de sesiones:

    función Significado
    session_start(); Si es la primera solicitud genera un identificador de sesión aleatorio cuyo nombre será sess_IDsesión; si es otra solicitud continua la sesión iniciada anteriormente.
    session_destroy(); Elimina todos los datos asociados con una sesión, borra el archivo en el servidor pero no borra la cookie.
    session_register(nombre); Recibe como parámetro una serie de nombres de variable globales y los registra como variables de sesión en el fichero del servidor
    session_unregister(nombre); Eliminamos la variable global introducida y se elimina el contenido de esta variable en el fichero del servidor.Sin pasar el parámetro nombre eliminaremos todas las variables de la sesión.
    session_is_registered(nombre); Devuelve true en caso de que en la sesión se encuentre registrada una variable con dicho nombre.
    session_unset(); Dejamos sin ningún valor asignado a todas las variables de la sesión
    session_id([nombre]); Si no le proporcionamos ningún parámetro nos da el identificador de sesión; si le proporcionamos el parámetro nombre cambia el valor del identificador por el parámetro nombre.
    session_name([nombre]); Si se invoca sin parámetro devuelve el nombre de la variable interna que tiene el id de sesiones; si se pasa parámetro cambia el nombre de la sesión.
    session_get_cookie_params(); Permite definir nuevos valores para los parámetros de configuración de las cookies.Para que el cambio sea permanente hay que invocar el cambio en todos los documentos.
    session_cache_limiter([cache_limiter]); Si se le proporciona valor modifica el valor por defecto en cambio sino se muestra el caché que tiene por defecto.
    session_encode(); Devuelve una cadena con la información de una sesión, después de usar esta función la información de la sesión queda actualizada
    session_decode(cadena); Descodifica la cadena que recibe como parámetro y que contiene la info de sesión, después de usar esta función se actualiza la info de sesión.
    session_save_path([path]); Devuelve el camino al directorio donde se guardan los ficheros asociados a la sesión.El efecto solo dura en el script actual.
    session_module_name([modulo]); Devuelve el nombre del modulo que se usa para realizar la gestión de sesiones. Cuando se invoca un parámetro se usa como nuevo gestor de sesiones.
    session_set_save_handler(open,close,read,write,destroy,gc);
    Permite definir su propio manejador para almacenar la información asociada con una sesión.De esta forma los datos pueden ser metidos en una BD en vez de en un fichero. Tenemos que pasarle como parámetro toda la información necesaria para crear y destruir sesiones.

    Etiquetas
    Archivo
    Operadores
    Matrices
    Cadenas
    Clases
    Fechas
    Funciones
    My SQL
    Sesiones
    Formularios

    FORMULARIOS:
    No forman parte de PHP, sino del lenguaje estándar de Internet, HTML. Vamos a dedicar en este capítulo algunas líneas al HTML, para entrar posteriormente a tratarlos con PHP. Todo formulario comienza con la etiqueta <FORM ACTION="lo_que_sea.php" METHOD="post/get"> . Con . Con ACTION indicamos el script que va procesar la información que recogemos en el formulario, mientras que METHOD nos indica si el usuario del formulario va ha enviar datos ( post ) o recogerlos ( get ).La etiqueta <FORM> indica el final del formulario. A partir de la etiqueta <FORM> vienen los campos de entrada de datos que pueden ser:

    
      Cuadro de texto:
      <input  type="text" name="nombre" size="20"  value="jose">
      Cuadro de texto con  barras de desplazamiento:
      <textarea  rows="5" name="descripcion" cols="20">Es de color rojo</textarea>
      Casilla de  verificación:
      <input  type="checkbox" name="cambiar" value="ON">
      Botón de opción:
      <input type="
      radio"  value="azul" checked name="color">
      Menú desplegable:
      <select size="1"  name="dia">
      <option selected  value="lunes">lunes</option>
      <option>martes</option>
      <option  value="miercoles">miércoles</option>
      </select>
      Boton de comando:
      <input  type="submit" value="enviar" name="enviar">
      Campo oculto:
      <input type="hidden"  name="edad" value="55">
      

    Este último tipo de campo resulta especialmente útil cuando que remos pasar datos ocultos en un formulario. Como habrás observado todos lo tipos de campo tienen un modificador llamado name , que no es otro que el nombre de la variable con la cual recogeremos los datos en el script indicado por el modificador ACTION de la etiqueta FORM FORM , con value establecemos un valor por defecto. A continuación veamos un ejemplo, para lo cual crearemos un formulario en HTML como el que sigue y lo llamaremos formulario.htm :

    
      <HTML>
      <BODY>
      <FORM METHOD="post"  ACTION="mis_datos.php">
      <input type="hidden"  name="edad" value="55">
      <p>Tu nombre <input  type="text" name="nombre" size="30"  value="jose"></p>
      <p>Tu sistema favorito
      <select size="1"  name="sistema">
      <option selected value="Linux">Linux</option>
      <option  value="Unix">Unix</option>
      <option  value="Macintosh">Macintosh</option>
      <option value=&qmargin-left:  75"><option value="Windows">Windows</option>
      </select></p>
      <p>¿Te gusta el futbol ? <input  type="checkbox" name="futbol"  value="ON"></p>
      <p>¿Cual es tu sexo?</p>
      <blockquote>
      <p>Hombre<input  type="radio" value="hombre" checked  name="sexo"></p>
      <p>Mujer <input type="radio" name="sexo"  value="mujer"></p>
      </blockquote>
      <p>Aficiones</p>
      <p><textarea  rows="5" name="aficiones"  cols="28"></textarea></p>
      <p><input type="submit"  value="Enviar datos" name="enviar">
      <input type="res-left:  50"> <input type="reset" value="Restablecer"  name="B2"></p>
      </FORM>
      </BODY>
      <HTML>
      

    Y ahora creemos el script PHP llamado desde le formulario mis_datos.php : Todos los datos se encuentran en la variable $_POST, ya que el formulario está enviado por el método post.

    
      <?PHP;
      if (isset($_POST['enviar']) {
      echo "Hola  <b>" . $_POST['nombre'] . "</b> que tal  estás<BR>n";
      echo "Eres "  . $_POST['sexo'] . "<BR>n";
      echo "Tienes  " . $_POST['edad'] . "<BR>n";
      echo "Tu sistema  favorito es " . $_POST['sistema'] .  "<BR>n";
      if (isset($_POST['futbol']) {
    
    echo "Te gusta el futbol<BR>n";

    } else odigo" style="margin-left: 50">} else { echo "NO te gusta el futbol <BR>n"; } if ($_POST['aficiones'] != "") { echo "Tus aficiones son: <BR>n"; echo nl2br($_POST['aficiones']); } else { echo "NO tienes aficiones <BR>n"; } } echo "<a href='formulario.htm'>VOLVER AL FORMULARIO</a>" ?>

    Una vez rellenados los datos del formulario, pulsamos el botón Enviar datos , con lo que le campo enviar toma lo que su etiqueta value indica, es decir enviar="Enviar datos" . En nuestro script lo primero que evaluamos es que se haya enviado el formulario, y para ello nada mejor que comprobar que la variable $enviar no está vacía. Le ponemos el signo dólar delante a enviar , ponemos el signo dólar delante a enviar , ya que en PHP todas las variables se les refiere con este signo. Hay que tener en cuenta que si fusionáramos el código de ambos ficheros, nos ahorraríamos uno, pero no también se puede hacer en dos como lo estamos haciendo. Si la variable $enviar está vacia, enviamos el formulario.

    
      <?PHP;
      if ($enviar) {
      echo "Hola  <b>" . $nombre . "</b> que tal estás<BR>n";
      echo "Eres "  . $sexo . "<BR>n";
      echo "Tienes  " . $edad . "<BR>n";
      echo "Tu sistema  favorito es " . $sistema . "<BR>n";
      if ($futbol) {
      echo "Te gusta el  futbol <BR>n";
      } else {
      echo "NO te gusta el  futbol <BR>n";
      }
      if ($aficiones !=  "") {
      < stuot;)>
      echo "Tus  aficiones son: <BR>n";
      echo nl2br($aficiones);
      } else {
      echo "NO tienes  aficiones <BR>n";
      }
      echo "<a  href='$PHP_SELF'>VOLVER AL FORMULARIO</a>"
      } else {
      <HTML>
      <BODY>
      <FORM METHOD="post" ACTION="<?PHP  echo $PHP_SELF ?>">
      <input type="hidden"  name="edad" value="55">
      <p>Tu nombre <input  type="text" name="nombre" size="30" nombre"  size="30" value="jose"></p>
      <p>Tu sistema favorito
      <select size="1"  name="sistema">
      <option selected  value="Linux">Linux</option>
      <option  value="Unix">Unix</option>
      <option  value="Macintosh">Macintosh</option>
      <option  value="Windows">Windows</option>
      </select></p>
      <p>¿Te gusta el  futbol ? <input type="checkbox"  name="futbol" value="ON"></p>
      <p>¿Cual es tu  sexo?</p>
      <blockquote>
      <p>Hombre<input  type="radio" value="hombre" checked  name="sexo"></p>
      <p>="codigo"  style="margin-left: 100"><p>Mujer <input  type="radio" name="sexo"  value="mujer"></p>
      </blockquote>
      <p>Aficiones</p>
      <p><textarea  rows="5" name="aficiones"  cols="28"></textarea></p>
      <p><input  type="submit" value="Enviar datos"  name="enviar">
      <input type="reset"  value="Restablecer" name="B2"></p>
      </FORM>
      </BODY>
      </HTML>
      <?PHP
      } //fin IF
      ?>
     

    La variable de entorno $PHP_SELF , es una variable de entorno que nos devuelve el nombre del script que estamos ejecutando. Y por último, hacer notar el uso de la función nl2br() , nl2br() , con la cuál sustituimos los retornos de carro del texto, los cuáles no reconocen los navegadores, por la etiqueta <BR> .

    Descarga de ficheros desde un formulario: Para descargar un archivo desde un formulario utilizaremos una etiqueta INPUT de tipo FILE , soportada a partir de las versiones de los navegadores Nestcape Navigator 2.0 e Internet Explorer 4.0. El formulario debe usar el método post , y el atributo post , y el atributo enctype debe tener el valor multipart/form-data . Además al formulario debemos añadirle un campo oculto de nombre MAX_FILE_SIZE , al cuál le daremos el valor en bytes del tamaño máximo del archivo a descargar.

    
      <FORM  ENCTYPE="multipart/form-data" ACTION="7-3.php"  METHOD="post">
      <INPUT TYPE="hidden"  name="MAX_FILE_SIZE" value="100000">
      <INPUT NAME="archivo"  TYPE="file">
      <INPUT TYPE="submit"  VALUE="Descargar Archivo">
      </FORM>
      
    Cuando el formulario es enviado, PHP detectará automáticamente que se está descargando un archivo y lo colocará en un directorio temporal en el servidor. Dicho directorio será que el que esté indicado en el archivo de configuración php.ini , o en su defecto en el directorio temporal del sistema. Cuando PHP detecta que se está descargando un archivo crea varias variables con el prefijo del nombre del archivo pero con distintas terminaciones. La variable terminada en $_FILES['archivo']['name'] contiene el nombre original del archivo, $_FILES['archivo']['size'] contiene el tamaño en bytes de éste, y la variable $_FILES['archivo']['type'] nos indicará el tipo de archivo si éste es ofrecido por el navegador. Si el proceso de descarga no ha sido correcto la variable archivo tomará el valor none y _size será 0 , y si el proceso ha sido correcto, pero la variable $_FILES['archivo']['size'] da 0 , quiere decir que el archivo a descarga supera el tamaño máximo indicado por MAX_FILE_SIZE . Una vez descargado el archivo, lo primero que debemos hacer es moverlo a otro lugar, pues sino se hace nada con él, cuando acabe la ejecución de la página se borrará. Veamos un ejemplo de todo lo dicho.
    
      <HTML>
      <BODY>
      <?PHP
      if (isset($_POST['enviar']) {
      if ($_FILES['archivo']['name'] !=  "" && $_FILES['archivo']['size'] != 0){
      echo "Nombre:  $archivo_name <BR>n";
      echo "Tamaño:  $archivo_size <BR>n";
      echo "Tipo:  $archivo_type <BR>n";
      if (! move_uploaded_file  ($_FILES['archivo']['tmp_name'],  "directorio/".$_FILES['archivo']['name'])) {
      echo "<h2>No  se ha podido copiar el archivo</h2>n"; 
      }
      } elseif ($_FILES['archivo']['name'] !=  "" && $FILES['archivo']['size'] == 0) {
      echo  "<h2>Tamaño de archivo superado</h2>n";
      } else {
      echo "<h2>No  ha escogido un archivo para descargar</h2>n";
      }
      echo "<HR>n";
      }
      ?>
      <FORM  ENCTYPE="multipart/form-data" ACTION="<?php echo  $_SERVER['PHP_SELF']; ?>" METHOD="post">
      <INPUT type="hidden"  name="MAX_FILE_SIZE" value="100000">
      <p><b>Archivo  a descargar<b><br>
      <INPUT type="file"  name="archivo" size="35"></p>
      <p><INPUT  type="submit" name="enviar"  value="Aceptar"></p>
      </FORM>
      </BODY>
      </HTML>
    

    PARADIGMA:
    La experiencia es el sistema
    que te permite detectar un error
    ...cuando lo vuelves a cometer..!!!
    ( Wilucha )

    Etiquetas
    Archivo
    Operadores
    Matrices
    Cadenas
    Clases
    Fechas
    Funciones
    My SQL
    Sesiones
    Formularios

    A R C H I V O S :

    | Gestión | Función | Crear | Leer | Subir | Navegar |

    El archivo PHP es un fichero de texto repleto de caracteres y espacios que el motor PHP ejecutará para hacer operaciones en tu web. Tales caracteres se denominan funciones y están encerradas entre las etiquetas < ? php y ? > , donde, lo que está dentro de esas tags se ejecuta y lo que está fuera no.
    Para gestionar un fichero de texto, para modificar las paginas HTML, podemos efectuar las siguientes transacciones:

    Por ser PHP un lenguaje interpretado de alto nivel embebido en páginas HTML y ejecutado en el servidor, opera asì:

    PARADIGMA
    Cultivo una rosa blanca
    en julio, como en enero
    para el amigo sincero
    que me da su mano franca..!!

    Y para el cruel que me arranca
    el corazón con que vivo,
    cardo ni ortiga cultivo;
    ..cultivo una rosa blanca..!
    José Martí

    Volver al principio

    Te espero en: wilucha@gmail.com

    Esta page está en: www.wilocarpio.com.ar

    24/10/2010