Posted on 31-08-20092009 in PHP | 0 comments
Las tablas (o array en inglés), son muy importantes en PHP, ya que generalmente, las funciones que devuelven varios valores, como las funciones ligadas a las bases de datos, lo hacen en forma de tabla.
En PHP disponemos de dos tipos de tablas. El primero sería el clásico, utilizando índices:
<?php
$ciudad[] = “París”;
$ciudad[] = “Roma”;
$ciudad[] = “Sevilla”;
$ciudad[] = “Londres”;
print (“yo vivo en ” . $ciudad[2] . “<BR>\n”);
?>
Esta es una forma de asignar elementos a una tabla, pero una forma más formal es utilizando la función array
<?php
$ciudad = array(“París”, “Roma”, “Sevilla”, “Londres”);
//contamos el número de elementos de la tabla
$numelentos = count($ciudad);
//imprimimos todos los elementos de la tabla
for ($i=0; $i < $numelentos; $i++)
{
print (“La ciudad $i es $ciudad[$i] <BR>\n”);
}
?>
Sino se especifica, el primer índice es el cero, pero podemos utilizar el operador => para especificar el indice inicial.
$ciudad = array(1=>”París”, “Roma”, “Sevilla”, “Londres”);
Un segundo tipo, son las tablas asociativas, en las cuáles a cada elemento se le asigna un valor (key) para acceder a él.
Para entenderlo, que mejor que un ejemplo, supongamos que tenemos una tabla en al que cada elemento almacena el número de visitas a nuestra web por cada día de la semana.
Utilizando el método clásico de índices, cada día de la semana se representaría por un entero, 0 para lunes, 1 para martes, etc.
$visitas[0] = 200;
$visitas[1] = 186;
si usamos las tablas asociativas sería
$visitas["lunes"] = 200;
$visitas["martes"] = 186;
o bien,
$visitas = array(“lunes”=>200; “martes”=>186);
Ahora bien, recorrer una tabla y mostrar su contenido es sencillo utilizando los índices, pero ¿cómo hacerlo en las tablas asociativas?. La manipulación de las tabas asociativas se a hace través de funciones que actúan sobre un puntero interno que indica la posición. Por defecto, el puntero se situa en el primer elemento añadido en la tabla, hasta que es movido por una función:
current - devuelve el valor del elemento que indica el puntero
pos – realiza la misma función que current
reset – mueve el puntero al primer elemento de la tabla
end – mueve el puntero al último elemento de la tabla
next – mueve el puntero al elemento siquiente
prev – mueve el puntero al elemento anterior
count – devuelve el número de elementos de una tabla.
Veamos un ejemplo de las funciones anteriores:
<?php
$semana = array(“lunes”, “martes”, “miércoles”, “jueves”, “viernes”, “sábado”, “domindo”);
echo count($semana); //7
//situamos el puntero en el primer elemento
reset($semana);
echo current($semana); //lunes
next($semana);
echo pos($semana); //martes
end($semana)
echo pos($semana); //domingo
prev($semana);
echo current($semana); //sábado
?>
Recorrer una tabla con las funciones anteriores se hace un poco lioso, para ello se recomienda utilizar la función each().
<?php
$visitas = array(“lunes”=>200, “martes”=>186, “miércoles”=>190, “jueves”=>175);
reset($visitas);
while (list($clave, $valor) = each($visitas))
{
echo “el día $clave ha tenido $valor visitas<BR>”;
}
?>
La función each()devuelve el valor del elemento actual, en este caso, el valor del elemento actual y su clave, y desplaza el puntero al siguiente, cuando llega al final devuelve FALSO, y termina el bucle while().
Tablas multidimensionales
Las tablas multidimensionales son simplemente tablas en las cuales cada elemento es a su vez otra tabla.
<?php
$calendario[] = array (1, “enero”, 31);
$calendario[] = array (2, “febrero”, 28);
$calendario[] = array (3, “marzo”, 31);
$calendario[] = array (4, “abril”, 30);
$calendario[] = array (5, “mayo”, 31);
while (list($clave, $valor ) = each($calendario)){
{
$cadena = $varlor[1];
$cadena .= ” es el mes número ” . $valor[0];
$cadena .= “y tiene ” . $varlor[2] . ” días<BR>”;
echo $cadena;
}
?>
La función list() es más bien un operador de asignación, lo que hace es asignar valores a unas lista de variables. En este caso los valores son extraidos de una tabla por la función each().
read more
Posted on 31-08-20092009 in PHP | 0 comments
Las sentencias de control permiten ejecutar bloque de códigos dependiendo de unas condiciones. Para PHP el 0 es equivalente a Falso y cualquier otro número es Verdadero.
IF…ELSE
La sentencia IF…ELSE permite ejecutar un bloque de instrucciones si la condición es Verdadera y otro bloque de instrucciones si ésta es Falsa. Es importante tener en cuenta que la condición que evaluemos ha de estar encerrada entre paréntesis (esto es aplicable a todas la sentencias de control).
if (condición) {
Este bloque se ejecuta si la condición es VERDADERA
} else {
Este boque se ejecuta si la condición es FALSA
}
Existe una forma sencilla de usar la sentencia IF cuando no tenemos que usar el ELSE y solo tenenemos que ejecutar una línea de código.
if ($a > 4) echo “$a es mayor que 4″;
IF…ELSEIF…ELSE
La sentencia IF…ELSEIF…ELSE permite ejecuta varias condiciones en cascada. Para este caso veremos un ejemplo, en el que utilizaremos los operadores lógicos.
<?php
if ($nombre == “”){
echo “Tú no tienes nombre”;
} elseif (($nombre==”eva”) OR ($nombre==”Eva”)) {
echo “Tu nombre es EVA”;<
} else {
echo “Tu nombre es ” . $nombre;
}
SWITCH…CASE…DEFAULT
Una alternativa a IF…ELSEIF…ELSE, es la sentencia SWITCH, la cuál evalúa y compara cada expresión de la sentencia CASE con la expresión que evaluamos, si llegamos al final de la lista de CASE y encuentra una condición Verdadera , ejecuta el código de bloque que haya en DEFAULT. Si encontramos una condición verdadera debemos ejecutar un BREAK para que la sentencia SWITCH no siga buscando en la lista de CASE. Veamos un ejemplo.
<?php
switch ($dia) {
case “Lunes”:
echo “Hoy es Lunes”;
break;
case “Martes”:
echo “Hoy es Martes”;
break;
case “Miercoles”:
echo “Hoy es Miercoles”;
break;
case “Jueves”:
echo “Hoy es Jueves”;
break;
case “Viernes”:
echo “Hoy es Viernes”;
break;
case “Sábado”:
echo “Hoy es Sábado”;
break;
case “Domingo”:
echo “Hoy es Domingo”;
break;
default:
echo “Esa cadena no corresponde a ningún día de la semana”;
}
?>
WHILE
La sentencia WHILE ejecuta un bloque de código mientras se cumpla una determinada condición.
<?php
$num = 1;
while ($num < 5) {
echo $num;
$num++
}
?>
Podemos romper un bucle WHILE utilizando la sentencia BREAK.
<?php
$num = 1;
while ($num < 5) {
echo $num;
if ($num == 3){
echo “Aquí nos salimos \n”;
break
}
$num++
}
?>
DO…WHILE
Esta sentencia es similar a WHILE, salvo que con esta sentencia primero ejecutamos el bloque de código y después se evalúa la condición, por lo que el bloque de código se ejecuta siempre al menos una vez.
<?php
$num = 1;
do {
echo $num;
if ($num == 3){
echo “Aquí nos salimos \n”;
break
}
$num++
} while ($num < 5);
?>
FOR
El bucle FOR no es estrictamente necesario, cualquier bucle FOR puede ser sustituido fácilmente por otro WHILE. Sin embargo, el bucle FOR resulta muy útil cuando debemos ejecutar un bloque de código a condición de que una variable se encuentre entre un valor mínimo y otro máximo. El bucle FOR también se puede romper mediante la sentencia BREAK.
<?php
for ($num = 1; Snum <=5; $num++){
echo $num;
if ($num == 3){
echo “Aquí nos salimos \n”;
break
}
}
?>
read more
Posted on 31-08-20092009 in PHP | 0 comments
Ahora antes de seguir, vamos a ver un poco de teoría, la sintaxis en PHP.
Variables:
Como vimos antes todas la variables deben precedidas por signo dólar ($), y le asignamos contenido con el signo igual (=). Con las variables, PHP distingue entre mayúsculas y minúsculas, por lo que no es lo mismo $myvar que $Myvar, éstas son dos variables totalmente distintas.
<html>
<body>
<?php
$myvar = “SEVILLA \n”;
$Myvar = “MADRID \n”;
//Esto imprimirá SEVILLA
echo $myvar;
//Esto imprimirá MADRID
ECHO $Myvar;
?>
</body>
</html>
Como veis he utilizado dos formas de escribir echo, en mayúsculas y en minúsculas, para indicaros que PHP no las distingue a la hora de usar funciones o sentencias del lenguaje.
El uso de la barra invertida, como en \n, no es obligatorio, pero ayuda a la depuración del código que enviamos al navegador, además del \n existen otros usos:
\” Carácter dobles comillas
\\ Carácter barra invertida
\n Nueva línea
\r Retorno de carro
\t Tabulador horizontal
Constantes:
Las constantes son similares a las variables, con la salvedad de que no llevan el signo dólar delante, y sólo la podemos asignar una vez. Para definir una constantes usaremos la función define como sigue:
<html>
<body>
<?php
define (“CONSTANTE”, “Hola Mundo”);
printf (CONSTANTE);
?>
</body>
</html>
PHP crea diversas constantes al arrancar, como PHP_VERSION que contiene la versión de PHP, TRUE que le asigna 1 o FALSE que le asigna 0.
Operadores Aritméticos:
$a + $b Suma
$a – $b Resta
$a * $b Multiplicación
$a / $b División
$a % $b Resto de la división de $a por $b
$a++ Incrementa en 1 a $a
$a– Resta 1 a $a
Operadores de Cadenas:
El único operador de cadenas que existen es el de concatenación, el punto. Pero no os asustéis, PHP dispone de toda una batería de funciones que os permitirán trabajar cómodamente con las cadenas.
$a = “Hola”;
$b = $a . “Mundo”; // Ahora $b contiene “Hola Mundo”
En este punto hay que hacer una distinción, la interpretación que hace PHP de las simples y dobles comillas. En el segundo caso PHP interpretará el contenido de la cadena.
$a = “Mundo”;
echo = ‘Hola $a’; //Esto escribirá “Hola $a”
echo = “Hola $a”; //Esto escribirá “Hola Mundo”
Operadores de Comparación:
$a < $b $a menor que $b
$a > $b $a mayor que $b
$a <= $b $a menor o igual que $b
$a >= $b $a mayor o igual que $b
$a == $b $a igual que $b
$a != $b $a distinto que $b
Operadores Lógicos:
$a AND $b Verdadero si ambos son verdadero
$a && $b Verdadero si ambos son verdadero
$a OR $b Verdadero si alguno de los dos es verdadero
$a !! $b Verdadero si alguno de los dos es verdadero
$a XOR $b Verdadero si sólo uno de los dos es verdadero
!$a Verdadero si $a es falso, y recíprocamente
Operadores de Asignación:
$a = $b Asigna a $a el contenido de $b
$a += $b Le suma a $b a $a
$a -= $b Le resta a $b a $a
$a *= $b Multiplica $a por $b y lo asigna a $a
$a /= $b Divide $a por $b y lo asigna a $a
$a .= $b Añade la cadena $b a la cadena $a
read more
Posted on 31-08-20092009 in PHP | 0 comments
Una vez que ya tenemos instalados PHP y MySQL, y el servidor Apache configurado para usarlos, podemos comenzar a escribir nuestro primer script en PHP.
Ejemplo script php
<html>
<body>
<?php
$myvar = “Hola. Este es mi primer script en PHP \n”;
//Esto es un comentario
echo $myvar;
?>
</body>
</html>
Una vez escrito esto lo salvamos en un fichero con la extensión php3 (la nueva versión de PHP, la 4, utiliza la extensión php), y lo colocamos en nuestro servidor, http://mi_servidor/php/test.php3. Ahora si ponemos esta URL en nuestro navegador veremos una línea con el texto “Hola. Este es mi primer script en PHP”.
Lo primero que apreciamos en el script son sus delimitadores. En la primera línea del script vemos <?php que nos indica que comienza un script en PHP, y en la última colocamos ?> para indicar el final del script. Hay que destacar que 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.).
Como en toda programación, es importante poner muchos comentarios, para lo cual si queremos comentar una sola línea tenemos que poner al principio de la línea //, si lo que queremos es comentar varias utilizaremos los delimitadores /* – */.
Para que el servidor envié texto utilizaremos la instrucción echo, aunque también podemos utilizar printf de uso similar al del C o Perl.
Finalmente, vemos que la palabra myvar comienza con el signo dólar ($) . Este símbolo le indica a PHP que es una variable. Nosotros le hemos asignado un texto a esta variable, pero también pueden contener números o tablas (arrays). Es importante recordar que todas las variables comienza con el signo dólar. También habréis observado que el texto que le asignamos a la variable termina con \n, esto no se imprime sirve para indicarle al navegador una nueva línea.
read more
Posted on 29-08-20092009 in MySQL, PHP | 0 comments
(PHP 5)
mysqli_options, mysqli->options — Fija opciones
Descripción
Estilo por procedimientos:
bool mysqli_options ( mysqli $identificador_de_enlace, int $opción, mixto $valor )
Estilo orientado a objetos (método)
class mysqli {
bool options ( int $opción, mixto $valor )
}
mysqli_options() puede ser usada para fijar opciones extra en la conexión y afectar el comportamiento para la conexión.
Esta función puede ser llamada múltiples veces para fijar diferentes opciones.
mysqli_options() debe ser llamada después de mysqli_init() y antes de mysqli_real_connect().
El parámetro opción es la opción que se busca cambiar, el parámetro valor es el valor para la opción. El parámetro opci´on puede ser una de las siguientes:
Opciones validas
| Nombre |
Descripción |
| MYSQLI_OPT_CONNECT_TIMEOUT |
Tiempo que espera para ser conectado en segundos |
| MYSQLI_OPT_LOCAL_INFILE |
habilita/deshabilita el uso de LOAD LOCAL INFILE |
| MYSQLI_INIT_CMD |
comando a ejecutar después cuando se conecte al servidor MySQL |
| MYSQLI_READ_DEFAULT_FILE |
Lee las opciones del archivo de configuración específicado en vez demy.cnf |
| MYSQLI_READ_DEFAULT_GROUP |
Lee las opciones del grupo del archivomy.cnf o del archivo específicado con MYSQL_READ_DEFAULT_FILE. |
Valores retornados
Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.
read more