Crear un select html desde php dinámicamente

Hoy voy a mostrar como generar un listado dinámico del control select, el combo desplegable, mediante PHP a partir de los datos devueltos por una consulta MySql.

Requisitos previos:
* Conocer como crear el conector $link.
Te dejo el tutorial por si te interesa: Tutorial Conexión a MySql desde PHP


//texto encabezado

echo "<h1>Selecciona una fruta</h1>";

//abrimos el select

//(el size indica el ancho del select)

echo '<select name="frutas" size="5">';

//realizamos la conexión

mysql_conecta($link);

//realizamos la consulta

$respuesta=mysql_query("select fruta_id, fruta_nombre from frutas", $link);

//recorremos los datos

while($fila=mysql_fetch_array($respuesta)){

 echo '<option value="'.$fila&#91;"fruta_id"&#93;.'"> 

      '.$fila["fruta_nombre"].'></option>';

}

//cerramos el select

echo '</select>';

Realizar backup a MySql desde PHP

Voy a explicar como realizar un backup o copia de seguridad de tu base de datos MySql desde PHP.

//servidor MySql
$C_SERVER='tu_servidor';
//base de datos
$C_BASE_DATOS='tu_base_de_datos';
//usuario y contraseña de la base de datos mysql
$C_USUARIO='tu_usuario';
$C_CONTRASENA='tu_contraseña';
//ruta archivo de salida 
//(el nombre lo componemos con Y_m_d_H_i_s para que sea diferente en cada backup)
$C_RUTA_ARCHIVO = '/ruta_hasta/backups/backup_'.date("Y_m_d_H_i_s").'.sql';
//si vamos a comprimirlo
$C_COMPRIMIR_MYSQL='true';


//comando
$command = "mysqldump --opt -h ".$C_SERVER." ".$C_BASE_DATOS." -u ".$C_USUARIO." -p".$C_CONTRASENA.
     " -r \"".$C_RUTA_ARCHIVO."\" 2>&1"; 
 
//ejecutamos
system($command);

//comprimimos
if ($C_COMPRIMIR_MYSQL == 'true') {
 system('bzip2 "'.$C_RUTA_ARCHIVO.'"');
}


*Supongo que el tutorial es aplicable a cualquier tipo de base de datos siempre y cuando tenga una consola y comandos correspondientes, sería cuestión de adaptar el código.

Mantenimiento MySql en PHP aplicable a otras bases de datos

Bueno, una manera bastante sencilla de realizar un mantenimiento de una base de datos MySql básico sería algo así :

* Conocer como crear el conector $link.
Te dejo el tutorial por si te interesa: Tutorial Conexión a MySql desde PHP

//conectamos
mysql_conecta($link);
//listamos tablas
$tablas=mysql_query("SHOW TABLES FROM box",$link);
//recorremos todas las tablas
while($ft=mysql_fetch_array($tablas)){
//optimizamos las tablas
mysql_query("OPTIMIZE TABLE ".$ft[0],$link);
//otras tareas ...
}

Conexión a mysql desde PHP

Bueno, voy a poner algo bastante básico a la hora de interactuar con una base de datos desde php. Lo más común es utilizar MySql junto con PHP.
Para realizar dicha unión es necesario crear una conexión entre PHP y MySql.

A continuación pongo un procedimiento al que enviamos una variable que servirá de intermediaria entre PHP y MySql.

//PARA CONECTAR A LA BASE DE DATOS
function mysql_conecta(&$link){
  //datos de conexión
  //servidor(si es local "localhost")     
  $mysql_server='tu_servidor';
  //el usuario
  $mysql_login='tu_usuario';
  //la contraseña
  $mysql_pass='tu_contraseña';
  //el nombre de la base de datos
  $mysql_db='tu_db';    

  //conectamos
  if($link=@mysql_connect($mysql_server, $mysql_login, $mysql_pass)){
      //seleccionamos la base de datos
      @mysql_select_db($mysql_db, $link);
  }else{
      print "
El servidor se encuentra ocupado, disculpen las molestias";
      exit();
 }
}

Una vez que tenemos el «puente» ya podemos ejecutar consultas mediante las funciones que PHP incorpora.
Las funciones más utilizadas son :
mysql_query, sirve para enviar sentencias sql y almacenar los resultados de dichas sentencias.
mysql_fetch_array, sirve para convertir el objeto devuelto por mysql_query en un array en la que las claves son los nombres de los campos.
Existen muchas otras también muy útiles. Ver resto de funciones php-mysql.

Voy a poner un ejemplo de pedir un listado de nombres y apellidos de una base de datos:

//realizamos la conexión
conecta($link);
//pedimos los datos mediante mysql_query enviando una consulta y el conector
$respuesta=mysql_query("select nombre, apellido from tabla_nombres", $link);
//recorremos los datos convirtiéndolos en un array por campos
while($fila=mysql_fetch_array($respuesta)){
  //mostramos
  echo "
Nombre: ".$fila["nombre"]."  Apellido: ".$fila["apellido"];
}