Foros del Web » Programando para Internet » PHP »

función Create Table

Estas en el tema de función Create Table en el foro de PHP en Foros del Web. tengo este código que me funciona correctamente Código PHP: //  <?php $db  =  mysqli_connect ( 'localhost' ,  'root' ,  ''  ,  'tramp2' ) or die( "No se puede establecer la conexión con la base de datos" ); ...
  #1 (permalink)  
Antiguo 02/02/2009, 13:57
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
función Create Table

tengo este código que me funciona correctamente

Código PHP:
// <?php
$db 
mysqli_connect('localhost''root''' 'tramp2') or die("No se puede establecer la conexión con la base de datos");
$consulta "CREATE TABLE `p2_lp_2` (
  `id` int(11) NOT NULL auto_increment,
  `num_doc` int(11) default NULL,
  `fecha` date default NULL,
  `titulo` varchar(50) collate utf8_spanish_ci default NULL,
  `Publicado_por` varchar(30) collate utf8_spanish_ci default NULL,
  `Guardado_en` varchar(30) collate utf8_spanish_ci default NULL,
  `Comprobado_por` varchar(30) collate utf8_spanish_ci default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=19 ; "
;

if (
mysqli_query($db$consulta)) {
    print 
"<p>Tabla creada correctamente.</p>";
} else {
    print 
"<p>Error al crear la tabla.</p>";
}
?>
Mi duda es como hacer para poder crear más de una tabla para la misma base de datos, he probado con un array en la variable $consulta del tipo $consulta[0] etc..

y meterlo luego pero no funciona,

Alguien puede hecharme un cable?

Gracias por anticipado,
  #2 (permalink)  
Antiguo 02/02/2009, 14:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: función Create Table

Hola dti3000,

Tendrías que hacer una consulta por cada tabla, y como dices, pasarlo a un arreglo y ciclarlo con un foreach:
Código php:
Ver original
  1. $consultas = array();
  2. $consultas[0] = "CREATE TABLE..";
  3. $consultas[1] = "CREATE TABLE..";
  4. $consultas[2] = "CREATE TABLE..";
  5. $consultas[3] = "CREATE TABLE..";
  6.  
  7. foreach($consultas as $consulta) {
  8.        mysql_query( $consulta );
  9. }

Saludos
  #3 (permalink)  
Antiguo 02/02/2009, 14:42
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: función Create Table

El foreach no tengo claro como complementarlo, he hecho esto pero me da un error

Código PHP:
// <?php
$db 
mysqli_connect('localhost''root''' 'tramp2') or die("No se puede establecer la conexión con la base de datos");
$consultas = array();

$consultas[0]= "CREATE TABLE `p2_lp_2` (
  `id` int(11) NOT NULL auto_increment,
  `num_doc` int(11) default NULL,
  `fecha` date default NULL,
  `titulo` varchar(50) collate utf8_spanish_ci default NULL,
  `Publicado_por` varchar(30) collate utf8_spanish_ci default NULL,
  `Guardado_en` varchar(30) collate utf8_spanish_ci default NULL,
  `Comprobado_por` varchar(30) collate utf8_spanish_ci default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=19 ; "
;

$consultas[1]= "CREATE TABLE `p2_lp_3` (
  `id` int(11) NOT NULL auto_increment,
  `No_Doc` int(11) default NULL,
  `Fecha` date default NULL,
  `Titulo` varchar(50) collate utf8_spanish_ci default NULL,
  `Publicado_por` varchar(30) collate utf8_spanish_ci default NULL,
  `Guardado_en` varchar(30) collate utf8_spanish_ci default NULL,
  `Comprobado_por` varchar(30) collate utf8_spanish_ci default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=7 ; "
;


foreach(
$consultas as $consulta) {

       
mysql_query$consulta );
       
if (
mysqli_query($db$consulta)) {
    print 
"<p>Tabla creada correctamente.</p>";
} else {
    print 
"<p>Error al crear la tabla.</p>";
}
?>
  #4 (permalink)  
Antiguo 02/02/2009, 14:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: función Create Table

Pues claro que te va dar error, te falta cerrar el foreach con una llave }, y por otro lado te conectas con mysqli, luego usas mysql_query y luego mysqli_query, notas una inconsiestencia?

Saludos
  #5 (permalink)  
Antiguo 02/02/2009, 16:09
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: función Create Table

muchas gracias!! con esta ayuda y un poco de manual sql he sacado este código que funciona perfectamente.

Código PHP:
<?php
$con 
mysql_connect("localhost","root"," ");
if (!
$con)
  {
  die(
'No se puede conectar a: ' mysql_error());
  }

// Create database
if (mysql_query("CREATE DATABASE tramp2",$con))
  {
  echo 
"Database created";
  }
else
  {
  echo 
"Error creando base de datos: " mysql_error();
  }

// Create table
mysql_select_db("tramp2"$con);
$sql = array();
$sql[0] = "CREATE TABLE `p2_lp_2` (
  `id` int(11) NOT NULL auto_increment,
  `num_doc` int(11) default NULL,
  `fecha` date default NULL,
  `titulo` varchar(50) collate utf8_spanish_ci default NULL,
  `Publicado_por` varchar(30) collate utf8_spanish_ci default NULL,
  `Guardado_en` varchar(30) collate utf8_spanish_ci default NULL,
  `Comprobado_por` varchar(30) collate utf8_spanish_ci default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=19 ;"
;

$sql[1] = "CREATE TABLE `p2_lp_3` (
  `id` int(11) NOT NULL auto_increment,
  `num_doc` int(11) default NULL,
  `fecha` date default NULL,
  `titulo` varchar(50) collate utf8_spanish_ci default NULL,
  `Publicado_por` varchar(30) collate utf8_spanish_ci default NULL,
  `Guardado_en` varchar(30) collate utf8_spanish_ci default NULL,
  `Comprobado_por` varchar(30) collate utf8_spanish_ci default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=19 ;"
;


foreach(
$sql as $consulta) {

       
mysql_query$consulta );

}
// Execute query
mysql_query($consulta,$con);

mysql_close($con);
?>
  #6 (permalink)  
Antiguo 02/02/2009, 16:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: función Create Table

No creo que debas de usar el último mysql_query ya que te puede dar un error ya que $consulta ya va a estar como NULL.

Saludos
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 05:18.