Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] no actualiza la BD

Estas en el tema de no actualiza la BD en el foro de PHP en Foros del Web. que tal, tengo un problema con un codigo de actualizacion de php para actualizar una BD haber si me pueden ayudar, al momento de mandar ...
  #1 (permalink)  
Antiguo 07/01/2016, 10:15
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 9
Pregunta no actualiza la BD

que tal, tengo un problema con un codigo de actualizacion de php para actualizar una BD haber si me pueden ayudar, al momento de mandar a actualizar no me marca error incluso me dice que esta bien pero cuando regreso a revisar no actualiza nada AYUDAA!!
este es el codigo!!

Código PHP:
<?php 
    
    
require('conexion.php');
    
    
$id=$_POST['id'];
    
$pisdte=$_POST['pisdte'];
    
$piord=$_POST['piord'];
    
$picnme=$_POST['picnme'];
    
$pidesc=$_POST['pidesc'];
    
$piprod=$_POST['piprod'];
    
$pioqty=$_POST['pioqty'];
    
$priority=$_POST['priority'];
    
$entdate=$_POST['entdate'];
    
$responsible=$_POST['responsible'];
    
$comments=$_POST['comments'];
    
    
$query="UPDATE cutandcapam SET pisdte='$pisdte', piord='$piord', picnme='$picnme', pidesc='$pidesc', piprod='$piprod', pioqty='$pioqty', priority='$priority', entdate='$entdate', responsible='$responsible', comments='$comments' WHERE id='$id'";
    
    
$resultado=$mysqli->query($query);
    
?>
  #2 (permalink)  
Antiguo 07/01/2016, 11:10
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: no actualiza la BD

Yo lo que suelo hacer en estos casos es un
Código PHP:
Ver original
  1. echo $query;
y copiarlo y pegarlo en el admin de BD que uses (Pgadmin, Mysql Workbench, ...) y ver si te da más información.
  #3 (permalink)  
Antiguo 07/01/2016, 11:24
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: no actualiza la BD

lo curioso es que con este codigo si funciona bien el UPDATE en mi BD
este es el formulario

Código:
<?php
	
	require('conexion.php');
	
	$id=$_GET['id'];
	
	$query="SELECT usuario, contrasenia, email FROM usuarios WHERE id='$id'";
	
	$resultado=$mysqli->query($query);
	
	$row=$resultado->fetch_assoc();
	
?>

<html>
	<head>
		<title>Usuarios</title>
	</head>
	<body>
		
		<center><h1>Modificar Usuario</h1></center>
		
		<form name="modificar_usuario" method="POST" action="mod_usuario.php">
			
			<table width="50%">
				<tr>
					<input type="hidden" name="id" value="<?php echo $id; ?>">
					<td width="20"><b>Usuario</b></td>
					<td width="30"><input type="text" name="usuario" size="25" value="<?php echo $row['usuario']; ?>" /></td>
				</tr>	
				<tr>
					<td><b>Password</b></td>
					<td><input type="password" name="password" size="25" value="<?php echo $row['contrasenia']; ?>" /></td>
				</tr>
				<tr>
					<td><b>Email</b></td>
					<td><input type="text" name="email" size="25" value="<?php echo $row['email']; ?>" /></td>
				</tr>
				<tr>
					<td colspan="2"><center><input type="submit" name="Guardar" value="Guardar" /></center></td>
				</tr>
			</table>
		</form>
	</body>
</html>
y este es codigo del UPDATE en php

Cita:
<?php

require('conexion.php');

$id=$_POST['id'];
$usuario=$_POST['usuario'];
$password=$_POST['password'];
$email=$_POST['email'];

$query="UPDATE usuarios SET usuario='$usuario', contrasenia='$password', email='$email' WHERE id='$id'";

$resultado=$mysqli->query($query);

?>

<html>
<head>
<title>Modificar usuario</title>
</head>

<body>
<center>

<?php
if($resultado>0){
?>

<h1>Usuario Modificado</h1>

<?php }else{ ?>

<h1>Error al Modificar Usuario</h1>

<?php } ?>

<p></p>

<a href="index.php">Regresar</a>

</center>
</body>
</html>
  #4 (permalink)  
Antiguo 07/01/2016, 12:08
Avatar de carlillos  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 245
Antigüedad: 17 años, 2 meses
Puntos: 21
Respuesta: no actualiza la BD

Si no te está marcando error, prueba usar mysqli_affected_rows y revisa el número que te devuelve.
Si te devuelve 0 significa que tu WHERE no está especificando una fila existente y por lo tanto no actualiza nada. Si te devuelve un valor mayor a cero, sí está actualizando datos, tal vez filas diferentes a las que tú esperas.

Como te indicó cluster28, por qué no imprimes tu query. Es más fácil inspeccionar tu query que todo tu código.

Saludos.
  #5 (permalink)  
Antiguo 07/01/2016, 12:22
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: no actualiza la BD

ya esta SOLUCIONADO gracias de todas Formas explico el Error, tengo 2 archivos
1.- form_mod.php (el que lee la info de la BD y modifica)
2.- mod.php (Recoge los datos y Modifica la BD)

en el primero tenia el formulario PERO me faltaba un input type HIDDEN
Código HTML:
Ver original
  1. <input type="hidden" name="id" value="<?php echo $id; ?>">
que es el recoge la ID de la BD y al modificar y mandar a mod.php no mandaba ID con el cual iva a modificar la info
Código PHP:
Ver original
  1. $id=$_POST['id'];

Solucion:
este codigo manda el ID
Código HTML:
Ver original
  1. <input type="hidden" name="id" value="<?php echo $id; ?>">
y este recoge la ID
Código PHP:
Ver original
  1. $id=$_POST['id'];

listo muchas gracias saludos...
  #6 (permalink)  
Antiguo 07/01/2016, 13:00
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: no actualiza la BD

Añade esto al final para poder comprobar si te arroja algún error la consulta.
Siempre es más fácil detectar los errores sql si los muestras.

Código PHP:
Ver original
  1. if (!$resultado) {
  2.     echo "Fallo al ejecutar la consulta: (" . $mysqli->errno . ") " . $mysqli->error;
  3. }
  #7 (permalink)  
Antiguo 07/01/2016, 13:07
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 9
De acuerdo Respuesta: no actualiza la BD

Tienes razon xerifandtomas muchas gracias

saludos...

Etiquetas: mysql+consulta, update
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 14:23.