Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Actualizar Múltiples Registros Php y Mysql

Estas en el tema de Actualizar Múltiples Registros Php y Mysql en el foro de PHP en Foros del Web. El siguiente código se ha generado con Dreamweaver. Bueno lo que deseo en este caso es que se puedan MODIFICAR VARIOS REGISTROS A LA VEZ. ...
  #1 (permalink)  
Antiguo 24/01/2013, 19:14
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Actualizar Múltiples Registros Php y Mysql

El siguiente código se ha generado con Dreamweaver. Bueno lo que deseo en este caso es que se puedan MODIFICAR VARIOS REGISTROS A LA VEZ. Hasta ahora no lo logro hacer. Cuando le doy clic al botón para modificar los datos, sólo me actualiza el último de todos los registros. Cabe indicar que no hay un número exacto de registros, ya que estos se generan mediante una consulta, y se da el caso que en un caso se presenten 15 registros, en otros 20, en otros 10 y asi sucesivamente. Por favor si me pueden ayudar se los agradecería. Quien me pueda ayudar que le agregue el código o modifique si fuera posible.

La tabla se llama EDICION, los campos NOMBRE y TELEFONO (ambos son tipo texto). El que quiero modificar es TELEFONO, porque el campo NOMBRE es la CLAVE PRINCIPAL.

************************************************** *****
<?php require_once('Connections/cNotas.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")) {
$updateSQL = sprintf("UPDATE edicion SET telefono=%s WHERE nombre=%s",
GetSQLValueString($_POST['telefono'], "text"),
GetSQLValueString($_POST['nombre'], "text"));

mysql_select_db($database_cNotas, $cNotas);
$Result1 = mysql_query($updateSQL, $cNotas) or die(mysql_error());
}

mysql_select_db($database_cNotas, $cNotas);
$query_mod = "SELECT * FROM edicion ORDER BY nombre ASC";
$mod = mysql_query($query_mod, $cNotas) or die(mysql_error());
$row_mod = mysql_fetch_assoc($mod);
$totalRows_mod = mysql_num_rows($mod);
?><!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>Editar varios</title>
<style type="text/css">
<!--
.Estilo1 {
font-size: 24px;
font-weight: bold;
font-style: italic;
color: #FF0000;
}
-->
</style>
</head>

<body>
<p align="center" class="Estilo1">Editar varios Registros</p>
<form id="form1" name="form1" method="POST" action="<?php echo $editFormAction; ?>">
<table border="1" align="center">
<tr align="center">
<td><strong>Nombre y Apellidos</strong></td>
<td><strong>Teléfono</strong></td>
</tr>
<?php do { ?>
<tr>
<td><label>
<input name="nombre" type="text" id="nombre" value="<?php echo $row_mod['nombre']; ?>" size="40" />
</label></td>
<td><label>
<input name="telefono" type="text" id="telefono" value="<?php echo $row_mod['telefono']; ?>" size="20" />
</label></td>
</tr>
<?php } while ($row_mod = mysql_fetch_assoc($mod)); ?>
<tr>
<td colspan="2" align="center"><label>
<input type="submit" name="button" id="button" value="Guardar Cambios" />
</label></td>
</tr>
</table>
<input type="hidden" name="MM_update" value="form1" />
</form>
<p>&nbsp; </p>
</body>
</html>
<?php
mysql_free_result($mod);
?>
  #2 (permalink)  
Antiguo 24/01/2013, 19:39
 
Fecha de Ingreso: enero-2011
Mensajes: 94
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Actualizar Múltiples Registros Php y Mysql

tienes que hacerlo con el foreach y creando arreglos

ejemplo

Código PHP:
Ver original
  1. foreach($_POST['id'] as $key => $value)
  2. {
  3.  
  4.  
  5. }


Código HTML:
Ver original
  1. <input name="telefono[]" type="text" id="telefono[]" value="<?php echo $row_mod['telefono']; ?>" size="20" /
  #3 (permalink)  
Antiguo 24/01/2013, 20:30
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

El código PHP que has puesto en la línea 1, en que parte de todo el código lo pongo. Además parece que falta código. Disculpa pero la verdad no manejo mucha codificación. Todas las páginas para ingresar información, actualizar y eliminar datos los hago con los asistentes de Dreamweaver. Como dice el mensaje cuando modifico uno por uno no tengo problema, pero esta vez quiero hacer cambios para varios registros.
Muchas gracias por tu respuesta inmediata.
Que DIOS te bendiga y te ilumine mas para que sigas ayudando a los demás.
esperaré tu respuesta o de alguien que me quiera ayudar.
  #4 (permalink)  
Antiguo 24/01/2013, 20:45
 
Fecha de Ingreso: enero-2011
Mensajes: 94
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Actualizar Múltiples Registros Php y Mysql

Oo umm pero para modificar ese código tienes que saber de programación
para actualizar múltiples registro con ese código seria así

pero en tu código no veo la clave primaria, como el id, pero creo que es el nombre según veo



Código PHP:
Ver original
  1. if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  2. foreach($_POST['nombre'] as $key => $value]) {
  3. $updateSQL = sprintf("UPDATE edicion SET telefono=%s WHERE nombre = $value",
  4. GetSQLValueString($_POST['telefono'][$key], "text"));
  5.  
  6. mysql_select_db($database_cNotas, $cNotas);
  7. $Result1 = mysql_query($updateSQL, $cNotas) or die(mysql_error());
  8.  
  9. }
  10. }
  #5 (permalink)  
Antiguo 24/01/2013, 21:08
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

Me marca el siguiente error del foreach: Parse error: syntax error, unexpected ']', expecting ')'

foreach($_POST['nombre'] as $key => $value]) {

Cuando le quito el símbolo ] que esta después del $value, ejecuta normal, pero cuando modifico un dato me sale el siguiente error:

Warning: Invalid argument supplied for foreach()

Nuevamente muchas gracias por contestarme ....
  #6 (permalink)  
Antiguo 24/01/2013, 21:11
 
Fecha de Ingreso: enero-2011
Mensajes: 94
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Actualizar Múltiples Registros Php y Mysql

si, es sin ese corchete, allí me equivoque, te sale error por que tienes que mandarle una clave primaria y el nombre no es la clave primaria, yo no se como es tu ase de datos.

Código PHP:
Ver original
  1. foreach($_POST['nombre'] as $key => $value)


y también acuérdate de tu formulario


Código HTML:
Ver original
  1. <input name="telefono[]" type="text" id="telefono[]" value="<?php echo $row_mod['telefono']; ?>" size="20" />
  2.  
  3.  
  4. <input name="nombre[]" type="text" id="nombre[]" value="<?php echo $row_mod['nombre']; ?>" size="20" />
  #7 (permalink)  
Antiguo 24/01/2013, 21:16
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

Cambie el código quitándole el corchete, pero me sale el siguiente error:

Warning: Invalid argument supplied for foreach() in ..... (nombre_del_archivo.php)

Mil gracias ...
  #8 (permalink)  
Antiguo 24/01/2013, 21:38
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

Hice todos los cambios y ahora me sale el siguiente error:

Unknown column 'Carla' in 'where clause'

CARLA es el primer registro que aparece, para realizar los cambios. Cuando le doy atras a la página, aparentemente cambia el dato, pero cuando reviso mi tabla o actualizo la página no cambia el registro que queria modificar ....

No sabes cuanto te agradezco que me estes ayudando ....
  #9 (permalink)  
Antiguo 24/01/2013, 22:02
 
Fecha de Ingreso: enero-2011
Mensajes: 94
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Actualizar Múltiples Registros Php y Mysql

Es por que no le estas mandando la clave primaria del registro como es tu base de datos muestra me el código de la tabla.
  #10 (permalink)  
Antiguo 25/01/2013, 05:58
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

La clave primaria es NOMBRE.

Gracias por ayudarme. ¿Cómo sería el código si el filtro fuera por dos campos?.

Tengo otro formulario igual, que modifica las notas de alumnos. La tabla tiene los siguientes campos de la tabla NOTAS:

Curso
Nombre
N1
N2
N3
Prom

En este caso a ninguno le pongo la clave primaria porque tanto el CURSO, como el NOMBRE DEL ALUMNO se repiten, porque el mismo alumno tiene varios cursos y un Curso lo llevan varios alumnos.
A la hora de hacer la modificación, igual que el anterior no tengo problema cuando se trata de un registro, pero cuando son varios, solo se actualiza el último.

Bueno disculpa que te escriba este otro caso. Quiero resolver el anterior y de pasada creo que puedo resolver este otro que es muy importante.

Muchas gracias por tu pronta respuesta. Si todo el mundo fuera como tú que le gusta compartir sus conocimientos el mundo sería otro.

Gracias nuevamente AMIGO NEDYER ...
  #11 (permalink)  
Antiguo 25/01/2013, 06:20
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

Hola AMIGO NEDYER, estoy muy contento porque acabo se solucionar el problema:

la siguiente línea de código la tenía así:
$updateSQL = sprintf("UPDATE edicion SET telefono=%s WHERE nombre=$value",

La correguí poniéndole ' ' al $value
$updateSQL = sprintf("UPDATE edicion SET telefono=%s WHERE nombre='$value'",

Pero queda el otro problema. ¿Cómo haría si quiero filtrar por dos campos?

Mi duda es en la siguiente línea de código incluir el otro campo:
foreach($_POST['nom_alum'] as $key =>$value) {

O debo crear otro foreach para el otro campo y que quede de la siguiente manera:

foreach($_POST['nom_alum'] as $key =>$value1) {
foreach($_POST['curso'] as $key =>$value2) {

Nuevamente MUCHAS GRACIAS, amigo NEDYER por tu ayuda. Ya llevaba mucho tiempo buscando en otros foros y nadie me había podido ayudar. Estaré eternamente agradecido contigo. Que Dios te bendiga y duplique tu inteligencia y tu trabajo ...

SI ME PUEDES AYUDAR CON ESTE OTRO EJEMPLO TE LO AGRADECERÉ PARA TERMINAR CON MI PROYECTO ...
  #12 (permalink)  
Antiguo 25/01/2013, 10:43
 
Fecha de Ingreso: enero-2011
Mensajes: 94
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Actualizar Múltiples Registros Php y Mysql

Si pero como te dije tienes un error en tu tabla, ya lo suponía al ver el código PHP ¿Donde esta la clave única de la tabla?, ¿Donde esta el id auto increment.?


tu tabla

Curso
Nombre
N1
N2
N3
Prom


esa tabla debería de quedar así

id
curso
nombre
n1
n2
n3
fecha_registro



Código SQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `curso` (
  2.   `id` INT(11) NOT NULL AUTO_INCREMENT,
  3.   `curso` INT(2) NOT NULL,
  4.   `nombre` VARCHAR(30) NOT NULL,
  5.   `n1` INT(2) NOT NULL,
  6.   `n2` INT(2) NOT NULL,
  7.   `n3` INT(2) NOT NULL,
  8.   `fecha_registro` DATE NOT NULL,
  9.   PRIMARY KEY (`id`)
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


Tienes problemas con el foreach por que no tienes clave primaria en la tabla, ya te lo había dicho, si no tienes clave primaria no se va a ejecutar bien el foreach.




El foreach va actualizar cada registro donde esta la clave primaria

ejemplo

Por ejemplo si tuviera esto, se va a actualizar todos los campos del id 1 y del id 4 no tienes por que colocar 2 foreach con uno sobra, y si colocas 2 estaría mal. Acuérdate que le estas pasando un array al foreach ese es el id, el foreach va a recorrer todo el array según las diferentes claves que le estés pasando.

id | curso | nombre | n1 | n2 | n3

1 | 4 | hola | 15 | 10 | 12

4 | 6 | bye | 20 | 02 | 14


Código ejemplo

Código PHP:
Ver original
  1. foreach($_POST['id'] as $key =>$value) {
  2.  
  3. $updateSQL = sprintf("UPDATE edicion SET curso=%s, nombre=%s, n1=%s, n2=%s, n3=%s WHERE id=$value",
  4. GetSQLValueString($_POST['curso'][$key], "int"),
  5. GetSQLValueString($_POST['nombre'][$key], "text"),
  6. GetSQLValueString($_POST['n1'][$key], "int"),
  7. GetSQLValueString($_POST['n2'][$key], "int"),
  8. GetSQLValueString($_POST['n3'][$key], "int"),
  9.  
  10. mysql_select_db($database_cNotas, $cNotas);
  11. $Result1 = mysql_query($updateSQL, $cNotas) or die(mysql_error());
  12. }
  13.  
  14. }

Última edición por nedyer; 25/01/2013 a las 11:06
  #13 (permalink)  
Antiguo 25/01/2013, 12:32
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

Ya lo entendí. Entonces le voy a crear un campo a la tabla para que tenga la clave primaria y de esa manera actualizar los campos

La verdad fueron de mucha, pero muchísima utilidad tus aportes. Sin tu ayuda, hubiera sido imposible terminar mi proyecto.

La verdad que no tengo como agradecerte.

Para terminar una última si me puedes ayudar con esto también:

Quisiera que cuando las notas de un alumno son desaprobatorias es decir, menor de 11 esa nota automáticamente salga de color ROJO, caso contrario que mantenga el color de letra negro o azul en su defecto. Si me puedes ayudar gracias.

QUE DIOS TE BENDIGA Y UN MILLÓN DE GRACIAS POR TU AYUDA ...
  #14 (permalink)  
Antiguo 25/01/2013, 16:35
 
Fecha de Ingreso: enero-2011
Mensajes: 94
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Actualizar Múltiples Registros Php y Mysql

Eso es fácil se hace con CSS



Código CSS:
Ver original
  1. .nota_a
  2. {
  3.     font-family: Verdana, Geneva, sans-serif;
  4.     font-size: 12px;
  5.     font-weight: bold;
  6.     text-transform: capitalize;
  7.     color: #000000;
  8.     padding: 0px;
  9. }
  10.  
  11. .nota_r
  12. {
  13.     font-family: Verdana, Geneva, sans-serif;
  14.     font-size: 12px;
  15.     font-weight: bold;
  16.     text-transform: capitalize;
  17.     color: #FF0000;
  18.     padding: 0px;
  19. }




Código PHP:
Ver original
  1. <?PHP if (($row_cursos['n1']) >= ("11") && ($row_cursos['n1']) <= ("20")) {  ?>
  2.  
  3. <span class="nota_a"><?PHP echo $row_cursos['n1']; ?></span>
  4.  
  5. <? }  ?>
  6.  
  7.  
  8. <?PHP if (($row_cursos['n1']) >= ("0") && ($row_cursos['n1']) <= ("10")) {  ?>
  9.  
  10. <span class="nota_r"><?PHP echo $row_cursos['n1']; ?></span>
  11.  
  12.  
  13. <? }  ?>
  #15 (permalink)  
Antiguo 25/01/2013, 20:45
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

Gracias nuevamente por responder.

Te comentaba temprano que ya lo había logrado. Y claro el ejemplo para modificar varios registros de un solo campo o columna no hay problema hasta ahora bien. Pero estoy haciendo pruebas con el otro de notas donde tengo mas campos y me esta volviendo a salir el mismo error:

Warning: Invalid argument supplied for foreach() in ..... (nombre_del_archivo.php)

El ejemplo en el que me ayudaste para que ne corriera le puse dos apóstrofes como lo pongo a continuación:

la siguiente línea de código la tenía así:
$updateSQL = sprintf("UPDATE edicion SET telefono=%s WHERE nombre=$value",

La correguí poniéndole ' ' al $value
$updateSQL = sprintf("UPDATE edicion SET telefono=%s WHERE nombre='$value'",

Otra pregunta: depende mucho el tipo de campo que le ponga si es "texto" o "numérico" para que funcione bien.

Es muy tarde y me siento muy agotado hoy ha sido un día muy complicado. Así que mañana continuaré con el trabajo y de paso codifico lo de los formatos de letra de colores segun alternativas

Muy agradecido por tu ayuda. La verdad no se como agradecerte por estar ayudandome como lo estas haciendo . UN MILLON DE GRACIAS ...
  #16 (permalink)  
Antiguo 26/01/2013, 06:50
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

Cuando modifico la codificación para una tabla con mas campos, no me funciona. Estoy utilizando 7 campos para modificar

Id => Clave Primaria
Curso
Nombre
N1
N2
N3
Prom

y me sale el mismo error que me salía al inicio

Warning: Invalid argument supplied for foreach() in (NOMBRE DEL ARCHIVO)

Porque no me sale. Sólo es para modificar un sólo campo o columna?

Mil Gracias por tu ayuda y pronta respuesta ...
  #17 (permalink)  
Antiguo 26/01/2013, 11:40
 
Fecha de Ingreso: julio-2012
Mensajes: 22
Antigüedad: 11 años, 9 meses
Puntos: 3
Respuesta: Actualizar Múltiples Registros Php y Mysql

Con el siguiente codigo haces todo tranquilo_8925

Código PHP:
Ver original
  1. echo "<table>";
  2. while ($fila = mysql_fetch_array($resultado))
  3. {
  4. echo "<td><input type='hidden' name='id[]' value='" . $fila["id"] . "'/></td>";
  5. echo "<tr>";
  6. echo "<td><input type='text' name='nombre_[]' value='" . $fila["nombre"] ."'  size='20'></td>";
  7. echo "</tr>";
  8. }
  9. echo "</table>";

ya solo bastaria que agregues el codigo de actualización en otro fomulario.
  #18 (permalink)  
Antiguo 26/01/2013, 13:52
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

El primer ejemplo donde trabajaba con dos campos, ya me funciona allí no tengo problemas.

El problema se da con otra página parecida pero con mas campos (7), en este caso me sale el mismo error que me salia en el primer ejemplo. Te repito del primer ejemplo ya no hay problema corre normal.

Necesito que me ayudes en este otro:

cod_nota => Clave Primaria
curso
nombre
n1
n2
n3
pr

y me sale el mismo error que me salía al inicio

Warning: Invalid argument supplied for foreach() in (NOMBRE DEL ARCHIVO)

Y como te repito no puedo modificar VARIOS CAMPOS (4), por eso te hacía la pregunta anteriormente: Si el código que me pasaste y que si funciona con un registro a actualizar, funciona para este caso que debo ACTUALIZAR 4 registros (n1, n2, n3, pr).

Espero tu pronta respuesta y Muchas gracias por contestar ...
  #19 (permalink)  
Antiguo 26/01/2013, 15:07
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

Encontré el problema y quiero que me ayudes con lo que te voy a explicar:

Resulta que como trabajo con Dreamweaver, siempre configuro mis páginas con la opción EUROPEO OCCIDENDAL y por eso me salia ERROR EN EL CÓDIGO. Cuando lo pongo en UNICODE (UTF-8), ya trabaja el código y puedo modificar uno o varios registros y campos, con el código que me diste.

Pero el problema ahora es que cuando lo dejo en UNICODE (UTF-8), las palabras que escribí en la base de datos con TILDE (´), o con Ñ, no me aparecen, En este caso que debo hacer para que aparezcan las tildes y eñes como las habia escrito.

Así aparece cuando escribo Capuñay ==> Capu�ay
Así aparece cuando escribo César ==> C�sar

o me aparecen cuadritos. Ayúdame porque creo que ya estoy en lo último por favor ....
  #20 (permalink)  
Antiguo 26/01/2013, 16:27
 
Fecha de Ingreso: enero-2011
Mensajes: 94
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Actualizar Múltiples Registros Php y Mysql

Tienes que tener esta configuración es tu archivo de conexión para no tener problemas con la codificación de caracteres


Código PHP:
Ver original
  1. mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'",$tu_base_de_datos);

Así tiene que quedar

  #21 (permalink)  
Antiguo 26/01/2013, 19:58
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

Ahora si lo logre. Que bueno y que bien se siente uno cuando termina algo, sobre todo cuando cuenta con una gran y excelente ayuda como la que has brindado para terminar mi proyecto.

Sinceramente, estoy muy agradecido contigo porque me has ayudado y has estado allí para contestar.

Bueno a terminar. Ahora tengo que trabajar lo de los colores de texto cuando una nota es desaprobado. Te puedo hacer algunas preguntas al respeto:

1.- los campos de notas tienen que ser numéricos para que salga el color y se pueda efectuar las comparaciones.
2.- Como dejo en blanco un campo numérico, porque en este caso las notas y promedios recién se van a ingresar por partes y cuando no se ingresa nada en un campo numérico este aparece 0 (cero), en la página y no quisiera que se mostrara así.
3.- Como hago para ponerle un cero a la izquierda cuando la nota es 08, porque cuando el dato es numérico se borra el cero de la izquierda, por eso trabajo con campos varchar porque como es texto permite poner ceros a la izquierda.
4.- Como hago para que me calcule el Promedio de las tres notas, teniendo en cuenta que en algunos casos no utilizo las tres columnas (n1, n2, n3) para calcular el promedio. Puedo utilizar, en algunos casos, sólo las dos primeras columnas. Como hago para calcular el promedio.
5.- Además, el promedio de las notas debe hacer un REDONDEO, es decir si el promedio sale 13.6 por ejemplo debe redondearlo a 14 y si es 13.33 que salga 13 pero que pierda la parte decimal.

Bueno esas son mis inquietudes que tengo. Me doy cuenta que me falta mucho por aprender, pero en realidad quiero aprender mas para ayudar a los demas como lo estas haciendo conmigo.

Gracias por todo amigo NEDYER ...
  #22 (permalink)  
Antiguo 30/01/2013, 05:55
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

Con el siguiente código calculo el promedio de tres notas (n1, n2, n3) pero lo hago sumando y dividiendo porque lo he intentado con AVG para sacar el promedio de notas, pero no me funciona. Además el promedio lo calcula, después de dar clic en el botón de ENVIAR, y además le quita los decimales convirtiéndolo en entero, pero me gustaría que el promedio se actualizara cada vez que actualizo cualquier nota. Pero bueno ...

<input name="prom[]" type="text" id="prom[]" value="<?php $Promedio=($row_not['n1']+$row_not['n2']+$row_not['n3'])/3; echo number_format($Promedio,0); ?>" size="3" />

Lo que deseo ahora es que cuando me muestre la nota, si es un 8, aparezca con 08 (es decir con un cero a la izquierda), pero eso no sucede a pesar que en la tabla de la base de datos lo he configurado para que sean de tamaño 2 y que salga un cero a la izquierda. En la tabla de la base de datos si se muestra el cambio, es decir cuando es una cifra aparece con un cero a la izquierda, pero cuando este dato lo muestra en la página no aparece el 0 (cero) a la izquierda ....

Si alguien me pudiera ayudar por favor ...
  #23 (permalink)  
Antiguo 30/01/2013, 08:58
 
Fecha de Ingreso: enero-2013
Ubicación: Lima
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
De acuerdo Cero a la izquierda despues de una operacion

Con el siguiente código calculo el promedio de tres notas (n1, n2, n3) pero lo hago sumando y dividiendo porque lo he intentado con AVG para sacar el promedio de notas, pero no me funciona. Además el promedio lo calcula, después de dar clic en el botón de ENVIAR, y además le quita los decimales convirtiéndolo en entero, pero me gustaría que el promedio se actualizara cada vez que actualizo cualquier nota. Pero bueno ...

<input name="prom[]" type="text" id="prom[]" value="<?php $Promedio=($row_not['n1']+$row_not['n2']+$row_not['n3'])/3; echo number_format($Promedio,0); ?>" size="3" />

Lo que deseo ahora es que cuando me muestre la nota, si es un 8, aparezca con 08 (es decir con un cero a la izquierda), pero eso no sucede a pesar que en la tabla de la base de datos lo he configurado para que sean de tamaño 2 y que salga un cero a la izquierda. En la tabla de la base de datos si se muestra el cambio, es decir cuando es una cifra aparece con un cero a la izquierda, pero cuando este dato lo muestra en la página no aparece el 0 (cero) a la izquierda ....

Si alguien me pudiera ayudar por favor ...
  #24 (permalink)  
Antiguo 21/11/2013, 18:11
 
Fecha de Ingreso: noviembre-2013
Mensajes: 11
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Actualizar Múltiples Registros Php y Mysql

Hola tranquilo_8925, creo que has culminado con el problema de actualizar "Múltiples registros ", la verdad me interesa mucho esa aplicación pequeña, porque serviría para presentar mi pequeño proyecto en mi instituto.... podrias pasarte todo el codigo de tu exito..... mi correo es [email protected] te lo agradeseria muchisimo de verdad.... e estado investigando el tema es un complicadisimo para mi. Igualmente agradesco ha "nedyer " que brinda sus aportes de conocimiento, gracias a DIOS que te bendicio por ese conocimiento...porfavor ayudeme a solucionar el problema de actualizar multiples registros..... no entiendo este codigo:
Código PHP:
Ver original
  1. <?php require_once('../Connections/actulizar_sistema.php'); ?>
  2. <?php
  3. if (!function_exists("GetSQLValueString")) {
  4. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
  5. {
  6. $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  7.  
  8. $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  9.  
  10. switch ($theType) {
  11. case "text":
  12. $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  13. break;
  14. case "long":
  15. case "int":
  16. $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  17. break;
  18. case "double":
  19. $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
  20. break;
  21. case "date":
  22. $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  23. break;
  24. case "defined":
  25. $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  26. break;
  27. }
  28. return $theValue;
  29. }
  30. }
  31.  
  32. $editFormAction = $_SERVER['PHP_SELF'];
  33. if (isset($_SERVER['QUERY_STRING'])) {
  34. $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
  35. }
  36.  
  37. if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  38. //$updateSQL = sprintf("UPDATE edicion SET telefono=%s WHERE nombre=%s",
  39. $updateSQL = sprintf("UPDATE edicion SET telefono=%s WHERE nombre=$value",
  40. GetSQLValueString($_POST['telefono'], "text"),
  41. GetSQLValueString($_POST['nombre'], "text"));
  42.  
  43.  
  44. mysql_select_db($database_actulizar_sistema, $actulizar_sistema);
  45. $Result1 = mysql_query($updateSQL, $actulizar_sistema) or die(mysql_error());
  46. }
  47.  
  48. mysql_select_db($database_actulizar_sistema, $actulizar_sistema);
  49. $query_mod = "SELECT * FROM edicion ORDER BY nombre ASC";
  50. $mod = mysql_query($query_mod, $actulizar_sistema) or die(mysql_error());
  51. $row_mod = mysql_fetch_assoc($mod);
  52. $totalRows_mod = mysql_num_rows($mod);
  53. ?>
  54. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  55. <html xmlns="http://www.w3.org/1999/xhtml">
  56. <head>
  57. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  58. <title>Editar varios</title>
  59. <style type="text/css">
  60. <!--
  61. .Estilo1 {
  62. font-size: 24px;
  63. font-weight: bold;
  64. font-style: italic;
  65. color: #FF0000;
  66. }
  67. -->
  68. </style>
  69. </head>
  70.  
  71. <body>
  72. <p align="center" class="Estilo1">Editar varios Registros</p>
  73. <form id="form1" name="form1" method="POST" action="<?php echo $editFormAction; ?>">
  74. <table border="1" align="center">
  75. <tr align="center">
  76. <td><strong>Nombre y Apellidos</strong></td>
  77. <td><strong>Telfono</strong></td>
  78. </tr>
  79. <?php do { ?>
  80. <tr>
  81. <td><label>
  82. <input name="nombre" type="text" id="nombre" value="<?php echo $row_mod['nombre']; ?>" size="40" />
  83. </label></td>
  84. <td><label>
  85. <input name="telefono" type="text" id="telefono" value="<?php echo $row_mod['telefono']; ?>" size="20" />
  86. </label></td>
  87. </tr>
  88. <?php } while ($row_mod = mysql_fetch_assoc($mod)); ?>
  89. <tr>
  90. <td colspan="2" align="center"><label>
  91. <input type="submit" name="button" id="button" value="Guardar Cambios" />
  92. </label></td>
  93. </tr>
  94. </table>
  95. <input type="hidden" name="MM_update" value="form1" />
  96. </form>
  97. <p>&nbsp; </p>
  98. </body>
  99. </html>
  100. <?php
  101. ?>
Porfis, si ya te salio ayudama a completarlo plis: tranquilo_8925 y nedyer (ayudame o dile a tu pata tranquilo... porfis , este problema no me deja dormir). Gracias de antemano. estare pendiente a la respuesta.

Etiquetas: html, mysql, registro, registros, select, sql, tabla
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 02:16.