Foros del Web » Programando para Internet » PHP »

Añadir a una BD más de una fila de datos

Estas en el tema de Añadir a una BD más de una fila de datos en el foro de PHP en Foros del Web. Hola que tal yo de nuevo :P pues bueno, a la pregunta. Yo tengo el siguiente código php para subir libro por libro a una ...
  #1 (permalink)  
Antiguo 06/04/2010, 02:12
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 4 meses
Puntos: 641
Añadir a una BD más de una fila de datos

Hola que tal yo de nuevo :P

pues bueno, a la pregunta. Yo tengo el siguiente código php para subir libro por libro
a una basa de datos Mysql, un catálogo de libros
Código PHP:
<?php
  
if (!$isbn || !$autor || !$titulo || !$precio)
  {
     echo 
"No has introducido todos los detalles requeridos.<br>"
          
."Por favor vuelve e inténtarlo de nuevo.";
     exit;
  }

  
$isbn addslashes($isbn);
  
$autor addslashes($autor);
  
$titulo addslashes($titulo);
  
$precio doubleval($precio);

  @ 
$db mysql_pconnect("localhost""root""contraseña");

  if (!
$db)
  {
     echo 
"Error: No se puede conectar a la base de datos.  Por favor inténtalo de nuevo.";
     exit;
  }

  
mysql_select_db("libreria");
  
$query "insert into libros values ('".$isbn."', '".$autor."', '".$titulo."', '".$precio."')";
  
$result mysql_query($query);
  if (
$result)
      echo  
mysql_affected_rows()." libro introducido en la base de datos.";
?>
pero esto es algo tedioso, ya que tengo que subir uno y luego otro etc.

cuando tengo varios libros por ejemplo del mismo autor, me gustaria poder subir
en mayor cantidad, de 5 por ejemplo, ¿es posible hacer esto? me pregunto si podrían orientarme con respecto a como podría lograrlo,

algo como:

que yo tenga un objeto select, que corresponda a la variable autor, y de ahi dos campos de texto uno que corresponda al precio y el otro al titulo o titulos, ya que mi idea sería que se pudieran meter varios datos al mismo tiempo.

espero no haber sido molesto, solo quiero orientación al respecto gracias.

Ejemplo:

Última edición por memoadian; 06/04/2010 a las 02:17
  #2 (permalink)  
Antiguo 06/04/2010, 02:55
 
Fecha de Ingreso: octubre-2005
Mensajes: 240
Antigüedad: 19 años, 1 mes
Puntos: 1
Respuesta: Añadir a una BD más de una fila de datos

Yo tengo un sistema como el que dices tu, pero usando javascript.

Lo que tienes que hacer es simplemente crear el select:

Código HTML:
<select name='autor'>
<?php
$autores = mysql_query("SELECT ID,NOMBRE FROM autores ORDER BY NOMBRE ASC");
while($autores_fa = mysql_fetch_array($autores)){
echo "<option value='".$autores_fa['ID']."'>".$autores_fa['NOMBRE']."</option>"
}
?>
</select> 
Eso por un lado. Luego si quieres añadir varios libros, tendrás que añadir filas de 2 inputs con javascript o crearlos directamente con PHP. En este segundo caso, creas por ejemplo 5 filas.

Fila 1 --> input name='titulo1' -> input name='precio1'
Fila 2 --> input name='titulo2' -> input name='precio2'

Y así sucesivamente, luego cuando recibes el action del form, basta con que hagas un for para extraer los diferentes datos, algo asi:

Código PHP:

$autor 
$_POST['autor'];
for(
$a=1;$a<5;$a++){
$titulo $_POST['titulo'.$a];
$precio$_POST['precio'.$a];

     if(!empty(
$titulo) && !empty($precio))
     
mysql_query("INSERT INTO libros (TITULO,PRECIO,AUTOR) VALUES ('$titulo',$precio,'$autor')");


A mi me sirve mucho en mis codigos cuando tengo que introducir datos de golpe en la base de datos, aunque yo uso javascript, añadiendo campos con appendchild.

Igualmente espero que te sirva.

Un saludo amigo!
  #3 (permalink)  
Antiguo 06/04/2010, 07:32
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 4 meses
Puntos: 641
Respuesta: Añadir a una BD más de una fila de datos

Bueno no se nada de javascript, pero solo queda avanzar o morir, gracias por la idea.
  #4 (permalink)  
Antiguo 06/04/2010, 10:03
 
Fecha de Ingreso: octubre-2009
Mensajes: 43
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Añadir a una BD más de una fila de datos

Hola!!!

En el html maneja las variables con [] al final. Por ejemplo:

<input type="text" name="autor[]" size="20">

Esto te sirve pra tener el array listo para manipular en php. Luego simplemente haces un for para ir insertando uno por uno en la base de datos.

Etiquetas: añadir, bd, fila
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 10:21.