HOla
Me podrían explicar como puedo insertar a través de un formulario creado con DW CS3 multiples registros a una tabla que tengo en mi Base de Datos.
Gracias...
| |||
Respuesta: Insertar multiples Registros Si, con un formulario que diga por ejemplo, Nombre (campo1) - Apellidos (campo2) - email (campo3), y un añadir campos o filas si desean agregar más nombres, apellidos y email, donde puedan agregar los que necesiten. Gracias por contestar. |
| ||||
Respuesta: Insertar multiples Registros en estos posts explico como hacer múltiples "insert" usando un loop: http://www.forosdelweb.com/f17/array...er-php-534143/ http://www.forosdelweb.com/f17/inser...region-795227/ |
| |||
Respuesta: Insertar multiples Registros Gracias, Juaniquillo, siempre atento a estas inquietudes y sacando un poco de tu tiempo, voy a revisar estos temas para ver como me va, cualquier cosa o inconveniente publico el codigo para que me ayude por si no fui capaz de resolver la inquietud. Gracias Maestro. |
| |||
Respuesta: Insertar multiples Registros Tengo casi el mismo problema donde tengo dos paginas la primera busca y la segunda muestra resultados con un repetir región, tengo un campo de texto el cual es el que necesito llenar unicamente lo demás dejar igual sin modificar. Realice el proceso del loop y arregle los errores que me decia pero no he podido actualizar, ya que no me guarda nada en el campo entregada. Este es el codigo: Cita: <?php require_once('Connections/pailinea.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($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_update"])) && ($_POST["MM_update"] == "form1")) { foreach($_POST["cod_ips1"] as $key => $value){ $updateSQL = sprintf("UPDATE pedidos SET entregada=%s WHERE cod_ips=%s", GetSQLValueString($_POST['despachada'] [$key], "text"), GetSQLValueString($_POST['cod_ips'] [$key], "int")); mysql_select_db($database_pailinea, $pailinea); $Result1 = mysql_query($updateSQL, $pailinea) or die(mysql_error()); $updateGoTo = "ejebusca.php"; if (isset($_SERVER['QUERY_STRING'])) { $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; $updateGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $updateGoTo)); } } $maxRows_MostrarPedido = 10; $pageNum_MostrarPedido = 0; if (isset($_GET['pageNum_MostrarPedido'])) { $pageNum_MostrarPedido = $_GET['pageNum_MostrarPedido']; } $startRow_MostrarPedido = $pageNum_MostrarPedido * $maxRows_MostrarPedido; $colname_MostrarPedido = "-1"; if (isset($_GET['cod_ips'])) { $colname_MostrarPedido = $_GET['cod_ips']; } mysql_select_db($database_pailinea, $pailinea); $query_MostrarPedido = sprintf("SELECT * FROM pedidos WHERE cod_ips = %s", GetSQLValueString($colname_MostrarPedido, "int")); $query_limit_MostrarPedido = sprintf("%s LIMIT %d, %d", $query_MostrarPedido, $startRow_MostrarPedido, $maxRows_MostrarPedido); $MostrarPedido = mysql_query($query_limit_MostrarPedido, $pailinea) or die(mysql_error()); $row_MostrarPedido = mysql_fetch_assoc($MostrarPedido); if (isset($_GET['totalRows_MostrarPedido'])) { $totalRows_MostrarPedido = $_GET['totalRows_MostrarPedido']; } else { $all_MostrarPedido = mysql_query($query_MostrarPedido); $totalRows_MostrarPedido = mysql_num_rows($all_MostrarPedido); } $totalPages_MostrarPedido = ceil($totalRows_MostrarPedido/$maxRows_MostrarPedido)-1; mysql_select_db($database_pailinea, $pailinea); $query_ObtenerIPS = "SELECT ips.cod_ips, ips.nombre, pedidos.cod_ips FROM ips, pedidos WHERE ips.cod_ips = pedidos.cod_ips"; $ObtenerIPS = mysql_query($query_ObtenerIPS, $pailinea) or die(mysql_error()); $row_ObtenerIPS = mysql_fetch_assoc($ObtenerIPS); $totalRows_ObtenerIPS = mysql_num_rows($ObtenerIPS); $colname_Recordset1 = "-1"; if (isset($_GET['cod_ips'])) { $colname_Recordset1 = $_GET['cod_ips']; } mysql_select_db($database_pailinea, $pailinea); $query_Recordset1 = sprintf("SELECT cod_ips, nombre FROM ips WHERE cod_ips = %s", GetSQLValueString($colname_Recordset1, "int")); $Recordset1 = mysql_query($query_Recordset1, $pailinea) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); $totalRows_Recordset1 = mysql_num_rows($Recordset1); ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento sin título</title> <link href="estilo/styles.css" rel="stylesheet" type="text/css" /> <style type="text/css"> <!-- .Estilo1 {color: #000000} .Estilo2 {color: #FF0000} .botonExcel {cursor:pointer;} --> </style> </head> <body> <p> </p> <?php if ($totalRows_MostrarPedido > 0) { // Show if recordset not empty ?> <form id="form1" name="form1" method="POST" action="<?php echo $editFormAction; ?>"> <?php echo $row_Recordset1['nombre']; ?> <table width="792" border="0" align="center" id="Exportar_a_Excel"> <tr> <td width="143" class="text3"><div align="center"><span class="Estilo1">Fecha de Solicitud</span></div></td> <td width="123" class="text3"><div align="center"><span class="Estilo1">Suministro</span></div></td> <td width="135" class="text3"><div align="center"><span class="Estilo1">Presentación</span></div></td> <td width="153" class="text3"><div align="center"><span class="Estilo1">Casa Productora</span></div></td> <td width="116" class="text3"><div align="center"><span class="Estilo1">Cantidad</span></div></td> <td width="96" class="text3"><div align="center"><span class="Estilo1">Despachada</span></div></td> </tr> <?php do { ?> <tr class="text3"> <td class="Estilo2"><div align="center"><?php echo $row_MostrarPedido['fecha_solicitud']; ?></div></td> <td class="Estilo2"><div align="center"><?php echo $row_MostrarPedido['suministro']; ?></div></td> <td class="Estilo2"><div align="center"><?php echo $row_MostrarPedido['presentacion']; ?></div></td> <td class="Estilo2"><div align="center"><?php echo $row_MostrarPedido['casa_productora']; ?></div></td> <td class="Estilo2"><div align="center"><?php echo $row_MostrarPedido['cantidad']; ?></div></td> <td class="Estilo2"><label> <div align="center"> <input name="despachada" type="text" class="Estilo1" id="despachada" value="<?php echo $row_MostrarPedido['entregada']; ?>" /> </div> </label></td> </tr> <?php } while ($row_MostrarPedido = mysql_fetch_assoc($MostrarPedido)); ?> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> </table> <label> <input type="submit" name="registrar" id="registrar" value="Enviar" /> </label> <input name="cod_ips" type="hidden" id="cod_ips" value="<?php echo $row_MostrarPedido['cod_ips']; ?>" /> <input name="cod_ips1[]" type="hidden" id="cod_ips1" value="<?php echo $despachada ?>" /> <input type="hidden" name="MM_update" value="form1" /> </form> <?php } // Show if recordset not empty ?> <p> </p> <p> </p> </body> </html> <?php mysql_free_result($MostrarPedido); mysql_free_result($ObtenerIPS); mysql_free_result($Recordset1); ?> |
| |||
Respuesta: Insertar multiples Registros Ok, esta de la siguiente manera: CREATE TABLE IF NOT EXISTS `pedidos` ( `id` int(5) NOT NULL AUTO_INCREMENT, `cod_ips` int(12) NOT NULL, `fecha_solicitud` varchar(12) COLLATE latin1_spanish_ci NOT NULL, `suministro` varchar(30) COLLATE latin1_spanish_ci NOT NULL, `presentacion` varchar(30) COLLATE latin1_spanish_ci DEFAULT '', `casa_productora` varchar(30) COLLATE latin1_spanish_ci DEFAULT '', `cantidad` varchar(5) COLLATE latin1_spanish_ci NOT NULL, `entregada` varchar(6) COLLATE latin1_spanish_ci DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci ROW_FORMAT=DYNAMIC AUTO_INCREMENT=7 ; Donde necesito que actualice es solamente en entregada. Es en este campo donde solo va entrar valores Gracias por la respuesta. |
| |||
Respuesta: Insertar multiples Registros Gracias, las tres consultas son, una muestra la consulta de la tabla pedidos, la segunda es una consulta que muestra las instituciones, esa solo incluye un codigo y el nombre no es tan importante y la tercera es la que valida la sesion del usuario. Lo que deseo realizar es: en el primer php hay un buscador, digitan la institucion y obtienen la busqueda de lo que digitan, al mostrar el resultado dan click sobre el y este los envia al segundo php, alli muestra por medio de una consulta lo que han pedido y el usuario que mira esa información solo va a digitar en el campo entregar lo que puede despachar o entregar, todo esta se muestra por medio de un repetir región. El anterior codigo que te envie es del segundoo php donde se esta mostrando la consulta y deseo ingresar lo que se va a entregar a la institución y actualizar el campo entregar, pero resulta que no me realiza lo que necesito. Gracias nuevamente. Cualquier solución es bienvenida Maestro. |
| ||||
Respuesta: Insertar multiples Registros Ya veo. Creo que deberíamos limitarnos a lo que necesitas que es el insert múltiple solamente. Ya tengo la consulta del insert y como esta hecha la tabla pero necesito saber como es el formulario, y en este caso el formulario se genera dinámicamente. ¿Podrías pasarme un ejemplo html del formulario que usas para hacer el insert? Puedes fácilmente copiarlo del source de la página en el navegador |
| |||
Respuesta: Insertar multiples Registros Gracias. Anexo los dos codigos uno es el buscador y el otro lo que muestra. Hay otra tabla que es la de las instituciones en la cual el buscador consulta, y la tabla pedidos alli igualo por los id de las instituciones que requieren o piden algo Buscador
Código PHP:
Ver original Resultado
Código PHP:
Ver original Muchas gracias por la ayuda. Si eso no es lo que me pedias, por favor disculpame. |
| |||
Respuesta: Insertar multiples Registros Hola Maestro, gracias Estas son las tablas necesarias, las cuales utilizo unicamente: CREATE TABLE IF NOT EXISTS `ips` ( `cod_ips` int(12) NOT NULL, `nit` varchar(15) CHARACTER SET latin1 DEFAULT NULL, `nombre` varchar(30) CHARACTER SET latin1 NOT NULL, `ciudad` varchar(30) CHARACTER SET latin1 DEFAULT NULL, `telefono` varchar(15) CHARACTER SET latin1 DEFAULT NULL, `direccion` varchar(30) CHARACTER SET latin1 DEFAULT NULL, `gerente` varchar(30) CHARACTER SET latin1 DEFAULT NULL, `tipo_prestacion` varchar(10) CHARACTER SET latin1 DEFAULT NULL, `email` varchar(30) CHARACTER SET latin1 DEFAULT NULL, `zona` varchar(10) CHARACTER SET latin1 DEFAULT NULL, PRIMARY KEY (`cod_ips`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci ROW_FORMAT=COMPACT; CREATE TABLE IF NOT EXISTS `pedidos` ( `id` int(5) NOT NULL AUTO_INCREMENT, `cod_ips` int(12) NOT NULL, `fecha_solicitud` varchar(12) COLLATE latin1_spanish_ci NOT NULL, `suministro` varchar(30) COLLATE latin1_spanish_ci NOT NULL, `presentacion` varchar(30) COLLATE latin1_spanish_ci DEFAULT '', `casa_productora` varchar(30) COLLATE latin1_spanish_ci DEFAULT '', `cantidad` varchar(5) COLLATE latin1_spanish_ci NOT NULL, `entregada` varchar(6) COLLATE latin1_spanish_ci DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci ROW_FORMAT=DYNAMIC AUTO_INCREMENT=10 ; - mysql_free_result($MostrarPedido);este muestra información o la consulta de la tabla pedidos - mysql_free_result($ObtenerIPS);este compara por cod_ips las dos tabla, pedidos e ips - mysql_free_result($Recordset1); este solamente muestra el codigo y el nombre en la tabla ips |
| ||||
Respuesta: Insertar multiples Registros Ahora creo entender. Por lo que veo no necesitas múltiples 'inserts', lo que necesitas son múltiples 'update' ya que lo que quieres es actualizar la fecha de entrega, ¿no? |
| ||||
Respuesta: Insertar multiples Registros para eso se puede usar el update que usa DW y después modificarlo. Lo primero es hacer incluir un campo oculto con el valor del id del pedido y lo pones dentro del loop. Yo lo llamé "id": ![]() Uploaded with ImageShack.us Después le agregas llaves ([]) a los nombres de ese campo y al campo de "despachada". Esto le dice a php que es un array: ![]() Uploaded with ImageShack.us ![]() Uploaded with ImageShack.us Vas a: Server Behaviors y le das al símbolo de más (+) y escoges: Update Record. ![]() Uploaded with ImageShack.us Iguala el 'id' al campo 'id[] ' y entregada al campo 'despachada[]': ![]() Uploaded with ImageShack.us Dw te dará este código:
Código PHP:
Ver original Usas el campo post del campo id para hacer el foreach (loop). el mí o quedó así:
Código PHP:
Ver original Y este es el formulario:
Código HTML:
Ver original como ves he remplazado el valor del id en el sprintf por el valor del array en el foreach y le he agregado [$key] al calor de 'despachada' para que que concuerde con el id que se está actualizando. Me dices si tienes problemas. Última edición por juaniquillo; 14/01/2011 a las 10:11 |
| |||
Respuesta: Insertar multiples Registros Muchas, pero muchas gracias, no sabe la alegria que tengo por esa colaboración..jajajajaja. El corazón late a mil. Una pregunta, que pena hay: puedo implementarlo con un insert de la misma manera. O cambia mucho. Voy a probar de todos modos,cualquier duda te puedo preguntar?. Le agradesco por sus respuesta oportunas y sabias, Maestro. No sabe cuanto, de verdad. |
| ||||
Respuesta: Insertar multiples Registros que bueno que te haya servido. el insert se parece más a los ejemplos que te dije anteriormente. inténtalo y si tienes algún problema me dices. saludos. |
| |||
Respuesta: Insertar multiples Registros Maestro, revisando las soluciones que me envio sobre los insert, me fije más en el segundo post, y modificando con el update no he podido encontrar la solución al insert multiple que necesito realizar a la tabla pedidos, este es el codigo:
Código PHP:
Ver original |
| ||||
Respuesta: Insertar multiples Registros Estás usando el campo 'cod_ips' para el loop, pero no tienes ningún campo que se llame así en el formulario. Inclúyelo en el formulario o usa uno de los otros, pero tiene que ser uno que siempre tenga un valor, osea que no se envíe vacío. |
Etiquetas: |