Foros del Web » Programando para Internet » PHP »

Insertar registro varias veces.

Estas en el tema de Insertar registro varias veces. en el foro de PHP en Foros del Web. Hola foros del web, tegno una consulta, estoy trabajando con DreamWeaver, PHP y MySQL . Lo que estoy intentando hacer es un formulario de insercion ...
  #1 (permalink)  
Antiguo 05/10/2009, 13:35
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Exclamación Insertar registro varias veces.

Hola foros del web, tegno una consulta, estoy trabajando con DreamWeaver, PHP y MySQL. Lo que estoy intentando hacer es un formulario de insercion de registro que me permita establecer la cantidad de veces que quiero que se inserte ese mismo registro en mi tabla de la base de datos.
Para ser especifico les cuento la situacion: Tengo una tabla donde cargo STOCK, y en ella quiero insertar un producto, resulta ser que de todos los productos tengo entre 3 a 5 del mismo. Por ello para ahorrar tiempo lo que quiero es tener alguna lista desplegable o campo de texto donde yo pueda elegir la cantidad de veces que quiero insertar el producto. Por ejemplo: Tengo 5 remeras blancas en talle L, completo el formulario: Tipo:Remera, Color:Blanca, Talle:L y ahora lo que me gustaria es tener la posibilidad de insertar 5 veces este formulario en mi base de datos sin tener que volver a llenar todos los datos.
Espero haber sido lo suficientemente claro, por supuesto que antes de postear busque por cielo y tierra y no encontre esto, lo unico que encuentro es poder añadir nuevas filas a mi formulario para nuevos registros, es decir para volver a escribir los registros y es eso justamente lo que no quiero, yo quiero que de un mismo formulario que complete lo duplique en mi base de datos hasta que carge 5 (siguiendo el ejemplo)
Muchas Gracias!!
  #2 (permalink)  
Antiguo 05/10/2009, 14:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Ayuda! Insertar registro varias veces.

Pues solamente agrega un campo que sea la cantidad y haces un for:
Código PHP:
Ver original
  1. for($i = 0; $i < $cantidad_de_veces_a_insertar; $i++) {
  2.       mysql_query("INSERT...");
  3. }

Saludos.
  #3 (permalink)  
Antiguo 05/10/2009, 18:41
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Ayuda! Insertar registro varias veces.

Gracias por tu rápida respuesta, creo que entiendo lo que me decis, pero como soy bastante nuevo necesito que me aclares algunas dudas si podes...
Al campo donde voy a poner la cantidad de veces que quiero insertar el registro que estoy completando ¿lo ubico fuera del FORM? seria algo asi:
Código:
<input type="text" name="$cantidad_de_veces_a_insertar" size="5">
Y mi otra duda seria el codigo que tengo arriba para hacer el INSERT es el siguiente:
Código:
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO stock (Equipo, Temp, TitSup, Estampado, Talle, Mangas, Precio, `Day`, `Month`, `Year`, Notas) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['Equipo'], "text"),
                       GetSQLValueString($_POST['Temp'], "text"),
                       GetSQLValueString($_POST['TitSup'], "text"),
                       GetSQLValueString($_POST['Estampado'], "text"),
                       GetSQLValueString($_POST['Talle'], "text"),
                       GetSQLValueString($_POST['Mangas'], "text"),
                       GetSQLValueString($_POST['Precio'], "int"),
                       GetSQLValueString($_POST['Day'], "int"),
                       GetSQLValueString($_POST['Month'], "text"),
                       GetSQLValueString($_POST['Year'], "int"),
                       GetSQLValueString($_POST['Notas'], "text"));

  mysql_select_db($database_Conexion, $Conexion);
  $Result1 = mysql_query($insertSQL, $Conexion) or die(mysql_error());

  $insertGoTo = "bdd_stock.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
Por lo que no estoy seguro donde iria el "for($i = 0..."
Osea de tanto leer y buscar entiendo claramente el código que me pasas, pero no estoy seguro en que parte colocarlo, si me podrias ayudar con eso te estaria muy agradecido.
Saludos!
  #4 (permalink)  
Antiguo 05/10/2009, 21:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Insertar registro varias veces.

No, tiene que ir dentro del form, y el name tien que ser correcto (sin la $), revisa esto: http://www.php.net/variables.external.

El for debe de ir donde realizas el insert.

Saludos.
  #5 (permalink)  
Antiguo 06/10/2009, 11:37
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Insertar registro varias veces.

Gracias por tu respuesta GatorV, lei la pag que me pasaste pero no encuentro nada que explique lo que busco, de hecho seria mas facil si me pasas el codigo armado.
  #6 (permalink)  
Antiguo 06/10/2009, 12:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insertar registro varias veces.

Cita:
Iniciado por victorross Ver Mensaje
[...] seria mas facil si me pasas el codigo armado.
jajajja... y tu nieve??

recuerda que en el foro se resuelven problemas de programación...

si quieres que alguien mas haga este trabajo por ti, ve al foro de ofertas de empleo


suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 06/10/2009, 13:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Insertar registro varias veces.

Como te indico pateketrueke en este foro no acostumbramos todos a entregar las cosas armadas, aunque a veces hay gente que lo hace, pero al menos no yo.

Si lees el link que te pase te indica como pasar variables desde un formulario a un script PHP y luego rescatarlas.

Luego solo es cuestión de que apliques esa lógica a lo que ya te he explicado y vas a poder hacerlo.

Saludos.
  #8 (permalink)  
Antiguo 06/10/2009, 13:54
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Insertar registro varias veces.

Hermano te estoy pidiendo que me acomodes 3 renglones en un script, si a eso le llamas TRABAJO...
Ya me lei 3 veces el link que me pasaste y no lo entiendo, ya intente acomodarlo al for antes del INSERT de 20 maneras distintas, pero es logico tengo 489 lineas de scrip, podria pasarme un mes entero tratando de engancharlo, mientras que a vos te tomaria solo 1 min decirme exactamente donde lo coloco segun el script que tengo, pero bue..
  #9 (permalink)  
Antiguo 06/10/2009, 14:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insertar registro varias veces.

caray!!



Código PHP:
$veces 5// o desde el POST

for ($i 0$i $veces; ++$i)
{
  
$sql 'INSERT';
  
// ...

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 06/10/2009, 14:19
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Insertar registro varias veces.

Siiiiii :D:D:D:D ahiiii estaaaaaaa!!! Gracias lobo, me faltaba definir el $veces = x
y gracias a lo que pude entender de lo que lei en la pag que me recomendaron defini el $veces con la cantidad que inserto en mi input del form.

Por si alguien necesita dejo como seria:
Código:
$cantidad = $_POST['cantidad'];
for($i = 0; $i < $cantidad; $i++) {
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf 
  ("INSERT INTO stock (Equipo, Temp, TitSup, Estampado, Talle, Mangas, Precio, `Day`, `Month`, `Year`, Notas) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['Equipo'], "text"),
                       GetSQLValueString($_POST['Temp'], "text"),
                       GetSQLValueString($_POST['TitSup'], "text"),
                       GetSQLValueString($_POST['Estampado'], "text"),
                       GetSQLValueString($_POST['Talle'], "text"),
                       GetSQLValueString($_POST['Mangas'], "text"),
                       GetSQLValueString($_POST['Precio'], "int"),
                       GetSQLValueString($_POST['Day'], "int"),
                       GetSQLValueString($_POST['Month'], "text"),
                       GetSQLValueString($_POST['Year'], "int"),
                       GetSQLValueString($_POST['Notas'], "text"));

  mysql_select_db($database_Conexion, $Conexion);
  $Result1 = mysql_query($insertSQL, $Conexion) or die(mysql_error());

  $insertGoTo = "bdd_stock.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
}
$cantidad es lo que pateketrueke definio como $veces...

Gracias a ambos, y ojala le sirva a alguien mas. saludos desde arg
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 11:11.