Seleccionar idioma:
Realizar Donación - Mods Premium - Portfolio



Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.
* Base de datos (Crear: Tablas - Columnas)
  Leído 6247 veces
* Viendo el foro
 0 Usuarios y 2 Visitantes están viendo este foro.


*
Autor: ^HeRaCLeS^
Oct 19 2013
Base de datos (Crear: Tablas - Columnas)

Autor: ^HeRaCLeS^



En este septimo tutorial sobre el desarrollo para smf hablaremos un poco sobre:
Bases de datos (Crear tablas)
Bases de datos (Crear Columnas)

Una de las principales caracteristicas de smf es la facilidad que nos brinda para trabajar y manejar la base de datos.
Como ya dije en el tutorial pasado muchos le tienen miedo a esto, pero veran lo simple que resulta ser una ves comprendida.

Para todo proyecto que incluya la utilizacion de base de datos deberemos seguir un orden logico, y ese mismo orden es el que le daremos al tutorial.
Nosotros deberemos insertar datos en la base de datos, pero para ello necesitamos las columnas donde estaran los datos, y para tener esas columnas necesitamos una tabla donde ponerlas.
Entonces lo primero que veremos sera como crear una tabla y como crearle columnas a esa tabla.

Nota: Para poder hacer uso de todo esto deberemos globalizar la variable $smcFunc



Como ya mencionamos en el tutorial Variables globales la variable $smcFunc es del tipo array y tiene un conjunto de funciones generales,
entre ellas las funciones que necesitamos para trabajar con la base de datos.

Crear tablas:

Al momento de crear una tabla tambien deberemos ponerle las columnas que esta tabla tendra, en pocas palabras, cuando creamos una tabla
se crea junto con sus columnas correspondientes.

En este ejemplo crearemos la tabla primer_tabla y le agregaremos dos columnas id y primer_valor.

Para ello utilizaremos la siguiente funcion mediante la variable $smcFunc.

Citar
smf_db_create_table($table_name, $columns, $indexes = array(), $parameters = array(), $if_exists = 'ignore', $error = 'fatal')

Parámetro $table_name: Es el nombre de la tabla que queremos crear/actualizar.
Parámetro $columns: Es un conjunto de arrays que contienen información acerca de las columnas que se van a agregar en la tabla.
Parámetro $indexes: Es un conjunto de arrays que contienen información acerca de los índices que queremos añadir.
Parámetro $parameters: Es una conjunto de parámetros: 'parámetro' => valor. En la actualidad existe un solo parámetro: 'no_prefix'.
Parámetro $if_exists: Es un valor que se pasa para que smf sepa que hacer si la tabla ya existe.
            * error: No hacer nada y devuelve false.
            * ignore: No hacer nada y devuelve true.
            * overwrite: Elimine la tabla y vuelve a crearla con las columnas y los índices especificados.
            * update: Añade las columnas que faltan a la tabla. El valor por defecto.
            * update_remove: Agrega las columnas faltantes y elimina todas las columnas que no están especificados en $columns.
Parámetro $error: Es un valor que se le pasa para que smf sepa que tipo de error debe devolver.
Valor de retorno: Es un tipo booleano. Puede ser Verdadero o falso dependiendo de varias cosas.

Código: [Seleccionar]
<?php
// Lo primero que hacemos es globalizar la variable $smcFunc.
global $smcFunc;

// Creamos la funcion para crear la tabla y columnas.
$smcFunc['db_create_table'] (
'{db_prefix}primer_tabla'
array(
array(
'name' => 'id',
'auto' => true,
'type' => 'int',
'size' => 11,
'null' => false,
'unsigned' => true,
),
array(
'name' => 'primer_valor',
'type' => 'text',
'null' => false,
)
), 
array(
array(
'columns' => array('id'),
'type' => 'primary',
),
), 
array(), 
'ignore'
'fatal'
);


?>


Ahora vamos a explicar un poco que fue lo que hicimos.

Tabla:
'{db_prefix}primer_tabla' Este es el nombre de la tabla con el prefijo de smf.

Primer columna:
'name' => 'id', Este es el nombre de lacolumna.
'auto' => true, Esto es para darle el valor autoincrementar a la columna.
'type' => 'int', Esto es el tipo de datos que se guardaran en la columna.
'size' => 11, Esto es el tamaño que tendra la columna.
'null' => false, Esto es para decirle que la columna no contendra valores nulos.
'unsigned' => true, Esto es para decirle que no se permiten valores negativos.

Segunda columna:
'name' => 'primer_valor', Este es el nombre de lacolumna.
'type' => 'type', Esto es el tipo de datos que se guardaran en la columna.
'null' => false, Esto es para decirle que la columna no contendra valores nulos.

Indice:
'columns' => array('id'), Esta es la columna que indexara.
'type' => 'primary', Este es el tipo de indice que le asignara.

Parametros:
array() No le estamos pasando parametros (Usara los predefinidos).

Si Existe:
'ignore' Le decimos que si la tabla existe no haga nada.

Error:
'fatal' Le decimos que si hay error devuelva un fatal error.




Como ya mensione en otros tutoriales, yo explico y enseño lo basico...
Despues dependera de cada uno el uso que le de y la imaginacion que tenga para usarlo.

Script: Desde este Link podran descargar el script de este ejemplo.
Lo descargan.
Lo suben al root de su sitio.
Lo ejecutan: su_sitio/Crear_tabla.php
Entran a su phpmyadmin y veran que se creo la tabla con sus respectivas columnas.

Nota: El script esta todo comentado para su mejor comprension.



Nos vemos en el proximo tutorial sobre desarrollo de smf.



« Última Modificación: Octubre 19, 2013, 02:03:52 pm por ^HeRaCLeS^ »



Faaaa, te la re mandaste con este manual sensei! La verdad que la bd siempre me pareció complicada, pero gracais a este manual, veo que no es tan compleja como pensaba. Lo repasaré y cualkier duda comento.

Gracias y Abrazos!




No es necesario el db_extends('packages'); ?




Gracias nodensdorian!!

Lucas, para hacerlo ejecutable si, si miras el script esta... Pero esto es para enseñar a trabajar las bases de datos y como dije va por partes.




Gracias por el tuto, me quedo a esperas de como poder hacer llamadas a la db, ya que tengo un mod que necesito sacar la imagen pero ni idea de como hacerlo xD




@Argaith06 existe $smcFunc['db_query'] (http://wiki.simplemachines.org/smf/Db_query) hay ocupas SELECT y las condicionales (WHERE), etcétera.. es saber un poco de mysql básico y luego buscar funciones en smf de mysql




JSX3 La idea de hacer tutoriales es que los usuarios no tengan que andar buscando por todos lados como hacer las cosas, esta es la idea de estos tutoriales....

De todas formas tampoco es tan simple como usar algunos select y where...




Otros temas de su interes

Variables globales ^HeRaCLeS^ Febrero 03, 2013, 06:02:36 pm
Variables superglobales ^HeRaCLeS^ Octubre 02, 2013, 07:57:30 pm
$_SESSION y $_COOKIE ^HeRaCLeS^ Octubre 04, 2013, 04:55:46 pm
Base de datos (Insertar y modificar) ^HeRaCLeS^ Abril 23, 2014, 02:40:38 pm
$_GET $_POST y $_REQUEST ^HeRaCLeS^ Octubre 05, 2013, 02:39:55 pm
Base de datos (Consultas) ^HeRaCLeS^ Abril 24, 2014, 04:11:29 pm



Usuario:
Contraseña:
Sesión: