Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Error al actualizar datos en Mysql

PHP, HTML, CSS, JS, jQuery, etc.
LeonardoHA
Observador/a
Mensajes: 1
Registrado: 07 Ene 2018, 21:19
Género:

Error al actualizar datos en Mysql

#1

Mensaje por LeonardoHA »

Hola, soy nuevo en la programación, no llevo mas de una semana con php.
En mi ultimo codigo tuve un error al actualizar los datos de una base que había creado, la idea era hacer un formulario con una id y una cantidad a sumar. El programa consultará el numero en la base de datos, lo sumaria con el numero nuevo y lo actualizará con la suma.
Todo va bien hasta la actualización, la que no se realiza
(La columna id tiene indice primary)

Agradezco toda ayuda.

El codigo es este:

Código: Seleccionar todo

<html>
<head>
<title>Formulario</title>
</head>
<body>

<form method="post" action="Formulario.php">

<label for="id">ID</label>
<p><input type="text" name="id" ></p>

<label for="sumar">Sumar</label>
<p><input type="text" name="sumar" ></p>

<input type="submit" name="submit">


</form>
<?php 
if (isset($_POST['submit'])) {

include ("conexiondatabase.php");

$id = $_POST['id'];
$sumar = $_POST['sumar'];
$resultado;

$resultados = mysqli_query($conexion, "SELECT * FROM $tabla_database")
or die ("problema en la consulta");

$consulta = mysqli_fetch_array($resultados);

$resultado = $consulta['contenido'] + $sumar;

echo $consulta['contenido'];
echo "</br>";
echo $sumar;
echo "</br>";
echo $resultado;
echo "</br>";

/*$conexion->query("INSERT INTO $tabla_database (id,contenido) values ('$id','$resultado')");*/

$_UPDATE_SQL="UPDATE $tabla_database Set 
contenido='$resultado', 

WHERE id='$id'"; 

mysqli_query($conexion,$_UPDATE_SQL); 

echo "Datos enviados";

include ("closedatabase.php");
}
?>

</body>
</html>


Avatar de Usuario
AbaddonOrmuz
Moderador
Mensajes: 1065
Registrado: 14 Ene 2017, 22:18
Género:

Re: Error al actualizar datos en Mysql

#2

Mensaje por AbaddonOrmuz »

Lee acerca de sentencias preparadas, tú código es muy inseguro y no deberia ser ejecutado en un servidor de manera pública. También lee acerca del modelo MVC (Model View Controller o Modelo Vista Controlador), ya que mezclar lógica (PHP) y diseño (HTML) es una mala práctica.

https://secure.php.net/manual/es/mysqli ... ements.php

En cuanto a tu consulta, podrías hacer la suma sin necesidad de realizar un SELECT, que dicho sea de paso también deberías incluir el ID en ese SELECT ya que como lo tienes actualmente obendrás todos los registros que tenga tu tabla y al parecer eso no es lo que quieres.

Código: Seleccionar todo

$sql = "UPDATE $tabla_database
	SET contenido = contenido + $sumar
	WHERE id = $id";

mysqli_query($conexion, $sql);
El código completo, no lo he probado pero debería funcionar:

Código: Seleccionar todo

<html>
	<head>
		<title>Formulario</title>
	</head>
<body>

<form method="post" action="Formulario.php">

<label for="id">ID</label>
<p><input type="text" name="id" ></p>

<label for="sumar">Sumar</label>
<p><input type="text" name="sumar" ></p>

<input type="submit" name="submit">


</form>
<?php 
if (isset($_POST['submit'])) {

include ("conexiondatabase.php");

$id = (int) $_POST['id'];
$sumar = (int) $_POST['sumar'];

$sql = "UPDATE $tabla_database
	SET contenido = contenido + $sumar
	WHERE id = $id";

mysqli_query($conexion, $sql);

echo "Datos enviados";

include ("closedatabase.php");

}
?>

</body>
</html>

Algunas de mis extensiones:
Imagen Imgur | :chart_with_upwards_trend: SEO Metadata | Imagen Markdown | :lock: Auto-lock Topics | :mermaid: Mermaid Diagrams
:trophy: Checa todas mi extensiones aprobadas :trophy:

:penguin: Usuario de Arch Linux :penguin:

despa
Observador/a
Mensajes: 1
Registrado: 17 Ene 2018, 18:30
Género:

Re: Error al actualizar datos en Mysql

#3

Mensaje por despa »

Hola,

Lo que yo puedo ver es que si quieres es actualizar el dato lo que te ha dicho AbaddonOrmuz es correcto, pero si quieres insertar un nuevo registro con el resultado, tal y como hacer a través de un INSERT, y si este no se realiza correctamente deberías comprobar si el id está definido como autonumérico y si se puede repetir, ya que en caso contrario el INSERT puede dar un error o no ejecutarse directamente.

Por otra parte, siempre comprueba los datos que te insertan en los formularios con mysql_escape_string() so similar. Mira cómo funciona aquí: http://php.net/manual/es/function.mysql ... string.php

Volver a “🆘 Recursos Webmaster”