PHP - Duda con Update en php

   
Vista:

Duda con Update en php

Publicado por Rodrigo (16 intervenciones) el 27/07/2016 23:38:44
Hola Amigos, tengo una duda de si se puede realizar lo que pienso o no, esto es actualizar los valores de una columna de todos los registros ingresados. Déjenme explicarme gráficamente, tengo la siguiente tabla

localhost>>Tabla1>Registro1

I_______________ II REGISTROII
Editar Copiar Borrar II Valor 1 II
Editar Copiar Borrar II Valor 2 II
Editar Copiar Borrar II Valor 3 II

con esta estructura, tengo una pagina llamada Registro.php que tiene el siguiente codigo, el cual muestra todos los valores ingresados en la tabla Registro1 columna Registro en un input cada uno.

1
2
3
4
5
6
7
8
<?php
$con=Conectar();
$query = "SELECT * FROM Registro1";
$result = mysql_query($query, $con);
WHILE ($row = mysql_fetch_array($result)){
echo "<input type='text' name='id' value='$row[REGISTRO]'><br>";
}
?>

MI duda es : Se puede hacer un update y actualizar los Valores 1,2 y 3 al mismo tiempo?

ojala puedan orientarme, saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip

Duda con Update en php

Publicado por kip (567 intervenciones) el 28/07/2016 02:12:07
Hola, puedes hacer UPDATE de los campos que desees colocando como parametro que cierto campo sea igual a alguna cadena o numero que incluyas, algo asi:

1
$sql = "UPDATE datos SET nombre='Francisco', apellido='Garcia', ciudad='Panama'  WHERE id=2";

UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con Update en php

Publicado por Rodrigo (16 intervenciones) el 28/07/2016 02:40:24
Gracias por tu respuesta pero mi problema no va por ahi creo, en tu ejemplo tendriamos 3 columnas como esta la imagen 1.

DIBUJO1

Mi caso seria como la imagen 2.

DIBUJO2

MI duda es si se puede Modificar la columna nombres al mismo tiempo desde un archivo php donde estos valores son recuperados a travez de un input. como en la imagen 3

Dibujo3

El codigo de esa pagina es el siguiente:

1
2
3
4
5
6
7
8
<?php
$con=Conectar();
$query = "SELECT * FROM Registro";
$result = mysql_query($query, $con);
WHILE ($row = mysql_fetch_array($result)){
echo "<input type='text' name='id' value='$row[Nombres]'><br>";
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip

Duda con Update en php

Publicado por kip (567 intervenciones) el 28/07/2016 03:18:17
Ahora te entiendo por completo, siento mucho no haberte comprendido antes, entonces seria algo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$con=Conectar();
$query = "SELECT * FROM Registro";
$result = mysql_query($query, $con);
 
if (isset($_POST['id']) and !empty($_POST['id'])){
	$val = $_POST['id'];
	for($i=0,$s=count($val);$i<$s;$i++){
		$update_query = "UPDATE Registro set nombres = '".$val[$i]."' WHERE nombres = '".$val[$i]."'";
		$update = mysql_query($update_query, $con);
		if ($i==($s-1)) $mensaje = 'Actualizacion exitosa!';
	}
}
if (isset($mensaje)) echo $mensaje;
?>
 
<form action="#" method="POST">
	<?php
	while($row = mysql_fetch_array($result)){
	echo "<input type='text' name='id[]' value='$row[nombres]'><br>";
	}
	?>
	<button type="submit">Modificar</button>
</form>

Coloque como atributo nombre en cada input id[], de esa forma los almaceno como un array y al recibirlos podre hacer una iteracion de la variable para obtener cada valor y ejecutar la query correspondiente, al no tener otro campo coloque como clausula WHERE el mismo campo, espero funcione, siempre suele ser otro campo como algun id pero creo funcionara, si no te resulta pruebañadiendo otro campo y colocalo como parametro.

Hice que muestre un mensaje en caso de actualizacion exitosa, es algo simple pero creo que te ayudara, si no lo quieres elimina las lineas correspondientes a dicho mensaje.

Nos avisas como te fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con Update en php

Publicado por Rodrigo (16 intervenciones) el 28/07/2016 03:58:46
Wuauuuu te pasaste!!!! muchas muchas gracias por tu ayuda, pero no resulto :(

Si bien al hacer el cambio en el input y presionar el botón de modificar, muestra Actualización Exitosa, no realiza el cambio en la tabla de la bd.

Creo que debere cambiar el planteamiento de la tabla y asignarle una columna de id, quedando dos columnas, una de ID y la otra de Nombres, y ahi hacer un llamado con select.

Gracias de todos modos.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip

Duda con Update en php

Publicado por kip (567 intervenciones) el 28/07/2016 05:41:06
Si tienes la curiosidad y asi mismo el tiempo necesario podrias haberlo resuelto, aqui te dejo el codigo que necesitas, sin necesidad de otra columna:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
$con=mysqli_connect('localhost','root','passdb','dbname');
if (isset($_POST['id']) and !empty($_POST['id'])){
	$query = "SELECT * FROM Registros";
	$result = mysqli_query($con,$query);
	while($row = mysqli_fetch_array($result,MYSQL_BOTH)){
		$rows[]=$row;
	}
	$val = $_POST['id'];
	for($i=0,$s=count($val);$i<$s;$i++){
		$update_query = "UPDATE Registros set nombres = '".$val[$i]."' WHERE nombres = '".$rows[$i][0]."'";
		$update = mysqli_query($con,$update_query);
		if ($i==($s-1)) $mensaje = 'Actualizacion exitosa!';
	 }
	$query = "SELECT * FROM Registros";
	$result = mysqli_query($con,$query);
	while($row = mysqli_fetch_array($result,MYSQL_BOTH)){
		$rows_edit[]=$row;
	}
} else {
	$query = "SELECT * FROM Registros";
	$result = mysqli_query($con,$query);
	while($row = mysqli_fetch_array($result,MYSQL_BOTH)){
		$rows[]=$row;
	}
}
if (isset($mensaje)) echo $mensaje;
?>
 
<form action="#" method="POST">
	<?php
	if(!isset($rows_edit)){
		foreach ($rows as $row) {
		echo "<input type='text' name='id[]' value='".$row['nombres']."'><br>";
		}
	} else {
		foreach ($rows_edit as $row) {
		echo "<input type='text' name='id[]' value='".$row['nombres']."'><br>";
		}
        }
	?>
	<button type="submit">Modificar</button>
</form>

Por cierto uso la libreria mysqli, debes usarla, mysql esta obsoleta, te lo recomiendo.

Si te da problemas consultanos, si puedes resolverlo por tu cuenta enhorabuena!

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar