Foros del Web » Programando para Internet » PHP »

Como hago este Insert Into ???

Estas en el tema de Como hago este Insert Into ??? en el foro de PHP en Foros del Web. Que tal, Resulta que tengo una tabla de Clientes y otra de Telefonos. Porque el Cliente puede tener N Telefonos. Entonces cuando Tenga la página ...
  #1 (permalink)  
Antiguo 09/08/2005, 08:58
 
Fecha de Ingreso: agosto-2005
Mensajes: 159
Antigüedad: 12 años, 4 meses
Puntos: 0
Como hago este Insert Into ???

Que tal,

Resulta que tengo una tabla de Clientes y otra de Telefonos. Porque el Cliente puede tener N Telefonos.

Entonces cuando Tenga la página de crear Cliente voy a hacer así:

1. Campos para el Nombre, Direccion, etc.
2. Un campo para telefono con una opción de + Telefonos (Imagino que ha de ser con javascript insertando campos dinámicos.)

3. Un botón de Insertar


La pregunta es, como pongo los N valores de Telefonos en el Insert Into ???

Otra, en un Insert Into puedo insertar valores en diferentes tablas al mismo tiempo?, en este caso Cliente y Teléfonos.




Muchas Gracias de Antemano.
  #2 (permalink)  
Antiguo 09/08/2005, 09:10
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
En un insert se pueden colocar muchos valores asi:

Código:
insert into tabla (campo1,campo2)
values ((valor1,valor2),
         (valor1,valor2),
         (valor1,valor2),
         (valor1,valor2),
         (valor1,valor2) );
Es decir, sólo debes tratar de formar una cadena de este tipo.
  #3 (permalink)  
Antiguo 09/08/2005, 09:12
 
Fecha de Ingreso: agosto-2005
Mensajes: 159
Antigüedad: 12 años, 4 meses
Puntos: 0
Gracias, pero no entiendo mucho el code que pones.

Yo generalmente recojo lo del formulario y eso va al Insert Into.

En este caso que significa (valor1,valor2), y como los paso ???


De verdad muchas gracias.
  #4 (permalink)  
Antiguo 09/08/2005, 09:25
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
insert into tabla (campo1,campo2)
values ((telefono1,teelfono2);

y asi con todos los datos

saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #5 (permalink)  
Antiguo 09/08/2005, 09:29
 
Fecha de Ingreso: agosto-2005
Mensajes: 159
Antigüedad: 12 años, 4 meses
Puntos: 0
Sip, entiendo eso, pero pueden ser 1 teléfono o 12 teléfonos.

Entonces Como se hace dinámicamente ? esa es la inquietud.
  #6 (permalink)  
Antiguo 09/08/2005, 09:30
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Prueba este script para darte una idea:

Código PHP:
<html>
<body>
<form name="form1" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
   Nombre: <input type="text" name="cliente"><br>
   Fono1: <input type="text" name="fono[]"><br>
   Fono2: <input type="text" name="fono[]"><br>
   Fono3: <input type="text" name="fono[]"><br>
   Fono4: <input type="text" name="fono[]"><br>
   Fono5: <input type="text" name="fono[]"><br>
   <input type="submit" name="enviar" value="Enviar"><br>
</form>

<?php
   $sql
="insert into tabla (cliente,fono) values (";
   
//concateno los valores
   
foreach($_POST['fono'] as $fono)
       
$sql.="('".$_POST['cliente']."','$fono'),";
   
//quito la ultima coma, que sobra
   
$sql=substr($sql,0,strlen($sql)-1);
   
//concateno el parentesis de cierre y el ;
   
$sql.=");";
   echo 
$sql;
?>
</body>
</html>
  #7 (permalink)  
Antiguo 09/08/2005, 09:40
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 13 años, 3 meses
Puntos: 5
Los valores que pasan a la consulta pueden venir por POST, GET, SESSION, COOKIE, etc. Depende de la forma en que hayas desarrollado tu script. En tu caso, tienes un formulario que enviará la información a otro script y hará los INSERT; eso quiere decir que la data a insertar viene por POST.

Para tu caso, necesitas 2 INSERT. Uno para la tabla de clientes y otro para teléfonos. Pero en tus teléfonos tienes el detalle de que pueden ser N teléfonos por lo que realmente no sabes cuántos teléfonos vas insertar.

Deberás contar con PHP la cantidad de teléfonos colocados por el usuario lo cual dependerá de la forma en que hayas hecho tu formulario. Luego, en base a esa cantidad haces un for o un while que realice un INSERT a teléfonos tantas veces como teléfonos haya.

Saludos,
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #8 (permalink)  
Antiguo 09/08/2005, 12:25
 
Fecha de Ingreso: agosto-2005
Mensajes: 159
Antigüedad: 12 años, 4 meses
Puntos: 0
Ok. Muchas Gracias, ya tomo la idea...existirá un ejemplo completo o un link ???
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 13:35.