Foros del Web » Programando para Internet » PHP »

¿Cómo introducir array en una base de datos?

Estas en el tema de ¿Cómo introducir array en una base de datos? en el foro de PHP en Foros del Web. Hola amigos. Les comento que me encontré con un problema en mi proyecto. El siguiente script funciona bien. La cuestión es este guarda las ubicaciones ...
  #1 (permalink)  
Antiguo 10/04/2013, 15:19
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Busqueda ¿Cómo introducir array en una base de datos?

Hola amigos. Les comento que me encontré con un problema en mi proyecto. El siguiente script funciona bien. La cuestión es este guarda las ubicaciones de diferentes secciones que corresponden a páginas: se va a hacer una lista muy grande; entonces creo que es mejor alojar estos arrays en una base de datos.

¿Me pueden ayudar por favor para la conexión?

Código:
class Helper {	

	private static $router = array (	
	
    '/' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentA.php'
    ),
    '/index' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentA.php'
    ),
	 '/contentAtabOne' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentA.php'
    ),
	 '/contentBtabOne' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentB.php'
    ),
    '/tabTwo' => array(    
		'content' => 'content/tabTwo.php'		
    ),			
     '/tabThree' => array(        
        'content' => 'content/tabThree.php'
    ),
	'/tabFour' => array(       
        'content' => 'content/tabFour.php'
    )

);

public static function getColumn($file = null ) {
    if (array_key_exists($file, self::$router) && isset(self::$router[$file]['column'])) {
        ob_start();
		is_file(self::$router[$file]['column']);
        require_once(self::$router[$file]['column']);
        return ob_get_clean();		
    }
}

public static function getContent($file = null) {
    if (array_key_exists($file, self::$router) && is_file(self::$router[$file]['content'])) {
        ob_start();
        require_once(self::$router[$file]['content']);
        return ob_get_clean();
    }
}

}
mikehove.- "Vivir es un desafío y de valientes"
  #2 (permalink)  
Antiguo 10/04/2013, 17:29
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Cómo introducir array en una base de datos?

Ya tienes en tu proyecto una clase/conexión a base de datos?, lo más fácil sería agregarla como parámetro en el constructor:

Código PHP:
Ver original
  1. class Helper {
  2.     private $_db;
  3.     public function __construct($db) {
  4.            $this->_db = $db;
  5.     }
  6.     public function otraFuncion() {
  7.           // Con $this->_db tienes acceso a la base de datos
  8.     }
  9. }
  10.  
  11. // Suponiendo que conectas a base de datos por PDO:
  12. $pdo = new PDO(/* aquí tus opciones de conexión */);
  13.  
  14. // Ahora sólo debes instanciar helper, proporcionando la conexión
  15. $helper = new Helper($pdo);
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 11/04/2013, 10:01
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Busqueda Respuesta: ¿Cómo introducir array en una base de datos?

Hola Triby. ¿Que tal? Gracias por responder.
Le comento que soy muy novato en la conexión a las maravillosas Bases de Datos.

Instalé el servidor "Localhost" de Xampp.

Por lo que averigué y logré corroborar que funciona bien esta conexión a la BD de este proyecto:

Código:
$link = mysql_connect('localhost', 'root', '');
     if (!$link) 
     {
    die('No pudo conectarse: ' . mysql_error());
     }
     else 
	 {
	     $select=mysql_select_db('pruebaArray');
	     if (!$select) 
	     {
         die('No pudo conectarse a la Base de Datos: ' . mysql_error());
         }
     }
Así diagramé la tabla:




Triby, su código es este:

Código:
class Helper {
    private $_db;
    public function __construct($db) {
           $this->_db = $db;
    }
    public function otraFuncion() {
          // Con $this->_db tienes acceso a la base de datos
    }
}
 
// Suponiendo que conectas a base de datos por PDO:
$pdo = new PDO(/* aquí tus opciones de conexión */);
 
// Ahora sólo debes instanciar helper, proporcionando la conexión
$helper = new Helper($pdo);
La verdad que tengo la conexión a la BD, la tabla "arrayUrl" con sus columnas y valores. Aquí tengo el drama para enlazar esta información (BD) con el sitio.

(Espero que la asociación de columnas-valores esten bien)

¿Puedes darme otra manito por favor Triby para conectar estos valores (arrays) que están en la tabla con el sitio, por favor?




mikehove.-"Vivir es un desafío y solo para valientes"
  #4 (permalink)  
Antiguo 11/04/2013, 10:12
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años
Puntos: 28
Respuesta: ¿Cómo introducir array en una base de datos?

Para este tipo de operaciones, es decir, construir un Router, no me complicaría tanto y menos con una base de datos.

Tienes muchísimas opciones para administrar un archivo de routes como por ejemplo usar XML o crear un fichero YAML como utiliza Symfony.

Ejemplo de fichero YAML en Symfony:

Código XML:
Ver original
  1. # routes.yml
  2. route1:
  3.     path:     /
  4.     defaults: { _controller: 'index.php' }
  5.  
  6. route2:
  7.     path:     /contact
  8.     defaults: { _controller: 'contact.php' }

Aquí tienes como leer un archivo YAML con PHP, básicamente al parsear un fichero .yml lo que consigues es un array con los valores.

http://php.net/manual/en/function.yaml-parse-file.php

Este formato de ficheros (YAML) son muy fáciles de mantener, llevan muy poco trabajo y son muy ligeros.
  #5 (permalink)  
Antiguo 11/04/2013, 11:06
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Busqueda Respuesta: ¿Cómo introducir array en una base de datos?

Buenas Pr0. Gracias por tirarme una onda.

Le comento que me funciona bien este script en php:

Código:
class Helper  {	

	private static $router = array (	
	
    '/' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentA.php'
    ),
    '/index' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentA.php'
    ),
	 '/contentAtabOne' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentA.php'
    ),
	 '/contentBtabOne' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentB.php'
    ),
    '/tabTwo' => array(    
		'content' => 'content/tabTwo.php'		
    ),			
     '/tabThree' => array(        
        'content' => 'content/tabThree.php'
    ),
	'/tabFour' => array(       
        'content' => 'content/tabFour.php'
    )

);

public static function getColumn($file = null ) {
    if (array_key_exists($file, self::$router) && isset(self::$router[$file]['column'])) {
        ob_start();
		is_file(self::$router[$file]['column']);
        require_once(self::$router[$file]['column']);
        return ob_get_clean();		
    }
}

public static function getContent($file = null) {
    if (array_key_exists($file, self::$router) && is_file(self::$router[$file]['content'])) {
        ob_start();
        require_once(self::$router[$file]['content']);
        return ob_get_clean();
    }
}

}


Y como voy a tener muchas páginas, pensé que esos arrays pueden estar mejor en una BD. Entonces diagramé:






El problema es que no se cómo asociar los arrays de la imagen (BD) a la página de conexión.

Solo tengo la forma de conectarme con la BD:

Código:
$link = mysql_connect('localhost', 'root', '');
     if (!$link) 
     {
    die('No pudo conectarse: ' . mysql_error());
     }
     else 
	 {
	     $select=mysql_select_db('pruebaArray');
	     if (!$select) 
	     {
         die('No pudo conectarse a la Base de Datos: ' . mysql_error());
         }
     }
La tabla se llama "arrayUrl" y la BD "pruebaArray"

¿Vos Pr0 crees que es mejor usar otro sistema más que la conexión a BD?
Necesito ayuda, por favor.





mikehove.- "Vivir es un desafío y es solo para valientes"

Última edición por mikehove; 11/04/2013 a las 21:01
  #6 (permalink)  
Antiguo 11/04/2013, 21:41
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Busqueda Inconvenientes de conexión a BD

Hola amigos. Este es un tema que lo estuve puliendo en otro post.

Cuestión que ahora pude avanzar y me encuentro que ya tengo los valores en los campos de la BD.

La idea es usar este script que funciona bien:

Código:
class Helper {	

	private static $router = array (	
	
    '/' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentA.php'
    ),
    '/index' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentA.php'
    ),
	 '/contentAtabOne' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentA.php'
    ),
	 '/contentBtabOne' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentB.php'
    ),
    '/tabTwo' => array(    
		'content' => 'content/tabTwo.php'		
    ),			
     '/tabThree' => array(        
        'content' => 'content/tabThree.php'
    ),
	'/tabFour' => array(       
        'content' => 'content/tabFour.php'
    )

);

public static function getColumn($file = null ) {
    if (array_key_exists($file, self::$router) && isset(self::$router[$file]['column'])) {
        ob_start();
		is_file(self::$router[$file]['column']);
        require_once(self::$router[$file]['column']);
        return ob_get_clean();		
    }
}

public static function getContent($file = null) {
    if (array_key_exists($file, self::$router) && is_file(self::$router[$file]['content'])) {
        ob_start();
        require_once(self::$router[$file]['content']);
        return ob_get_clean();
    }
}

}
Y reemplazarlo con esta estructura que armé de la BD:





La tabla se llama "arrayUrl" y la BD "pruebaArray"

El problema es que como ya tengo la base de datos y sus valores no se cómo o que funciones colocar en la página para su conexión.

Compañero del Foro "Triby" me dio esta guía:

Código:
class Helper {
    private $_db;
    public function __construct($db) {
           $this->_db = $db;
    }
    public function otraFuncion() {
          // Con $this->_db tienes acceso a la base de datos
    }
}
 
// Suponiendo que conectas a base de datos por PDO:
$pdo = new PDO(/* aquí tus opciones de conexión */);
 
// Ahora sólo debes instanciar helper, proporcionando la conexión
$helper = new Helper($pdo);

Se que para conectar la BD comienzo con esto:

Código:
$link = mysql_connect('localhost', 'root', '');
     if (!$link) 
     {
    die('No pudo conectarse: ' . mysql_error());
     }
     else 
	 {
	     $select=mysql_select_db('pruebaArray');
	     if (!$select) 
	     {
         die('No pudo conectarse a la Base de Datos: ' . mysql_error());
         }
     }




mikehove.- "Vivir es un desafío y para valientes"
  #7 (permalink)  
Antiguo 12/04/2013, 01:48
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 3 meses
Puntos: 68
Respuesta: Inconvenientes de conexión a BD

El problema que es? que no sabes como conectarte a la base de datos? no sabes que libreria usar? que método?
__________________
No diseñes usando tablas.
  #8 (permalink)  
Antiguo 12/04/2013, 12:12
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Respuesta: Inconvenientes de conexión a BD

Hola hades97. El problema es que necesito reemplazar los códigos arrays que muestro al principio del post previo a este por los códigos de la BD de la imagen, no se qué métodos o funciones colocar en la página para la conexión.

Solo tengo los códigos básicos para la conexión:

Cita:
$link = mysql_connect('localhost', 'root', '');
if (!$link)
{
die('No pudo conectarse: ' . mysql_error());
}
else
{
$select=mysql_select_db('pruebaArray');
if (!$select)
{
die('No pudo conectarse a la Base de Datos: ' . mysql_error());
}
}
La tabla se llama "arrayUrl" y la BD "pruebaArray"

mikehove.- "Vivir es un desafío y para valientes"

Última edición por mikehove; 12/04/2013 a las 12:26
  #9 (permalink)  
Antiguo 13/04/2013, 09:48
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 3 meses
Puntos: 68
Respuesta: Inconvenientes de conexión a BD

Pero que quieres volcar lo que hay en los arrays a la base de datos? no sabes que usar en php? o en mysql?
__________________
No diseñes usando tablas.
  #10 (permalink)  
Antiguo 13/04/2013, 17:03
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Busqueda Respuesta: Inconvenientes de conexión a BD

Hola ades87. Lo que no se es como trabajar únicamente, esos mismos arrays, desde la misma BD a la página. Pues voy a tener muchísimas páginas y me parece mejor ubicarlas en un BD.

Se puedo esto?

¿Aún no se entiende lo que necesito amigo?


mikehove.- "Vivir es un desafío y solo para valientes"
  #11 (permalink)  
Antiguo 15/04/2013, 01:15
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 3 meses
Puntos: 68
Respuesta: Inconvenientes de conexión a BD

Es que no lo acabo de entender, quieres empezar a usar base de datos? pasar los datos a la base de datos? guardar arrays en base de datos? has miado algo de MySQL?
__________________
No diseñes usando tablas.
  #12 (permalink)  
Antiguo 15/04/2013, 13:37
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Respuesta: ¿Cómo introducir array en una base de datos?

Hola amigos. Necesito ayuda para crear una página de administración: conexión a una BD.

El siguiente código que voy a pegar se refiere a una clase que aloja array multidimensionales con URL y sus correspondientes ubicaciones; todo funciona bien. Lo que pasa es que la idea es ir actualizando y/o agregando cientos de array y necesito directamente trabajarlos desde una BD (de paso para poder administrar esos valores de diferentes formas) y no desde este fichero provocando una lista gigante y confusa.

Ejemplo del fichero .php:

Código:
class Helper {	

	private static $router = array (	
	
    '/' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentA.php'
    ),
    '/index' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentA.php'
    ),
	 '/contentAtabOne' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentA.php'
    ),
	 '/contentBtabOne' => array(
        'column' => 'columns/tabOne/columnA.php',
        'content' => 'content/tabOne/contentB.php'
    ),
    '/tabTwo' => array(    
		'content' => 'content/tabTwo.php'		
    ),			
     '/tabThree' => array(        
        'content' => 'content/tabThree.php'
    ),
	'/tabFour' => array(       
        'content' => 'content/tabFour.php'
    )

);

public static function getColumn($file = null ) {
    if (array_key_exists($file, self::$router) && isset(self::$router[$file]['column'])) {
        ob_start();
		is_file(self::$router[$file]['column']);
        require_once(self::$router[$file]['column']);
        return ob_get_clean();		
    }
}

public static function getContent($file = null) {
    if (array_key_exists($file, self::$router) && is_file(self::$router[$file]['content'])) {
        ob_start();
        require_once(self::$router[$file]['content']);
        return ob_get_clean();
    }
}

}
Base de datos:




Como muestro en la imagen, la tabla (se llama "arrayUrl") consta de 4 campos:
(1: "arrayUrl_id", 2:"arrayUrl_name", 3:"arrayUrl_column" y 4:"arrayUrl_content")


La BD se llama "pruebaArray". Aquí su conexión:

Código:
$link = mysql_connect('localhost', 'root', '');
if (!$link) 
{
die('No pudo conectarse: ' . mysql_error());
}
else 
{
$select=mysql_select_db('pruebaArray');
if (!$select) 
{
die('No pudo conectarse a la Base de Datos: ' . mysql_error());
}
}

En síntesis, sería no usar esta lista para agregar más array en el fichero de la página pero sí que lo consulte directamente a la BD (que ahí tengo el problema no se cómo hacerlo) para ir agregando desde la BD más array.





mikehove.- "Vivir es un desafío y para valientes"
  #13 (permalink)  
Antiguo 15/04/2013, 18:59
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Cómo introducir array en una base de datos?

En todos los temas que has creado pones lo mismo, no veo que tengas un avance. Por ejemplo, ya tienes la conexión a MySQL y seleccionas la base de datos, pero no tienes todavía la consulta para extraer la información.

Ya sabemos que necesitas cargar todo en un array, pero nadie va a hacer el código por ti, muéstranos qué es lo que tienes, cómo lo has intentado o, cuando menos, dinos si no tienes realmente conocimientos de PHP + MySQL para recomendarte algún tutorial.
__________________
- León, Guanajuato
- GV-Foto
  #14 (permalink)  
Antiguo 15/04/2013, 22:47
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Respuesta: ¿Cómo introducir array en una base de datos?

Hola Triby. ¿Qué manual me recomienda para poder estudiar y llegar al éxito con este proyecto?
En realidad no necesito guardar todo en un array. Necesito que esa lista de clase esté en una base de datos (como mostré anteriormente en la imagen) y que desde ahí pueda seguir agregando array.


mikehove.- "Vivir es un desafío y para valientes"
  #15 (permalink)  
Antiguo 16/04/2013, 01:07
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 3 meses
Puntos: 68
Respuesta: ¿Cómo introducir array en una base de datos?

Pues yo te diría que te mirases la documentación oficial de PHP
__________________
No diseñes usando tablas.
  #16 (permalink)  
Antiguo 16/04/2013, 18:08
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Cómo introducir array en una base de datos?

Podrías comenzar con este: http://www.youtube.com/playlist?list=PLEE9E187889C98C62

No lo he visto, pero supongo que cualquier tutorial donde aprendas lo básico te va a venir bien.
__________________
- León, Guanajuato
- GV-Foto
  #17 (permalink)  
Antiguo 16/04/2013, 18:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: ¿Cómo introducir array en una base de datos?

Quizás puedes empezar por aquí:
http://www.forosdelweb.com/wiki/Manual_de_PHP:_MySQL

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #18 (permalink)  
Antiguo 25/05/2013, 11:24
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Respuesta: ¿Cómo introducir array en una base de datos?

Hola amigos. ¿Cómo estan? Les comento que estuve estudiando, siguiendo algun curso de youtube que me ofrecieron aquí, tutoriales, el manual de php, haciendo ejercicios.

Lo que conseguí fue hacer la conexión por PDO:

Cita:
try
{
$con = new PDO('mysql:host=localhost;dbname=pruebaarray', 'root', '');//Conexión a nuetra BD por PDO con el constructor de la clase
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//Mensaje de Error si no conecta

$stmt= $con->prepare('SELECT * FROM arrayurl');
$stmt->execute();


$result = $stmt->fetchAll();//Obtener todas las filas restantes del conjunto de resultados
print_r($result);//Imprimo resultados

}
catch(PDOException $e)
{
echo 'Error: ' . $e->getMessage();
}



Este funciona bien, mostrando en pantalla las celdas de mi tabla. Todavía no se cómo instanciar adaptar todo el proyecto que puse anteriormente para que funcione con BD.



mikehove - "Vivir es un desafío y para valientes"

Etiquetas: bd, php+ajax+formularios, php+arrays
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:49.