Foros del Web » Programando para Internet » PHP »

No Actualiza Update MySQL - PHP

Estas en el tema de No Actualiza Update MySQL - PHP en el foro de PHP en Foros del Web. Buenas gente, mi primer pregunta por aqui. Soy novato, muy novato con PHP. Estoy armando una base de datos, en la cual uno se registra ...
  #1 (permalink)  
Antiguo 05/05/2011, 22:23
 
Fecha de Ingreso: mayo-2011
Mensajes: 5
Antigüedad: 12 años, 11 meses
Puntos: 0
No Actualiza Update MySQL - PHP

Buenas gente, mi primer pregunta por aqui. Soy novato, muy novato con PHP.
Estoy armando una base de datos, en la cual uno se registra y luego el usuario puede modificar los datos ya ingresados.
Todo perfecto, solo que el formulario de actualizacion realiza las funciones pero no actualiza la base MySQL.
El formulario que muestra los datos a modificar es el siguiente
Código:
<?php
include "conexion.php";
$id=$_GET['id'];
$result=mysql_query("select * from corredores where id=$id",$conexion);
  while($row = mysql_fetch_array($result)) { 
      echo("<form name=corredores action=grabaract.php?id=$row[0] method=post>
DNI: <input type=text name=dni value=$row[1]><br>
Nombre: <input type=text name=nombre value=$row[2]><br>
Apellido: <input type=text name=apellido value=$row[3]><br>
<input name=enviar' type=submit value=Enviar />
</form>"); 
   }         
include "cerrarconexion.php"
?>
Y el formulario "grabaract.php" que realiza la acción seria el siguiente:
Código:
<?php
$id=$_GET['id'];
$dni=$_POST['dni'];
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
include "conexion.php";
$sql = "SELECT * FROM corredores WHERE id=$id"; 
$result = mysql_query($sql);
$query = "UPDATE corredores SET dni=$dni,nombre=$nombre,apellido=$apellido";
$result=mysql_query($query);
if($query) 
{ 
echo "Actualizacion OK ! "; 
} 
else 
{ 
echo " No hubo actualizacion"; 
} 
//.Cerramos Conexion
include "cerrarconexion.php";
?>
No encuentro la falla, y me esta rompiendo la cabeza!
Muchas gracias de antemano por responder.
Saludos.
  #2 (permalink)  
Antiguo 05/05/2011, 22:47
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: No Actualiza Update MySQL - PHP

El error clásico, las comillas.. Recuerda que en una query debes comillar texto!
Código PHP:
//Mal
$query "UPDATE esto(uno,dos) SET uno=$uno, dos=$dos";

//Bien
$query "UPDATE esto(uno,dos) SET uno='$uno', dos='$dos'"
Corrígelo en tu código y cuéntanos qué tal
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 06/05/2011, 00:31
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 5 meses
Puntos: 48
Respuesta: No Actualiza Update MySQL - PHP

Sigue estando mal el codigo para grabar bien tambien deves usar el WHERE sino estaras actualizando todos los registros en la Tabla.

Tamoco nunca ejecutas la query, el codigo deveria ser asi:

Código PHP:
<?php
/// ESTE TIPO DE INCLUDE ES MEJOR PONERLO SOBRE TODO PARA APRECIARLO MEJOR ///
include "conexion.php";
/// RECUERDA LIMPIAR LAS VARIABLES ///
$id=$_GET['id'];
$dni=$_POST['dni'];
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
/// USAMOS WHERE EN EL UPDATE PARA ACTUALIZAR UN SOLO REGISTRO SINO ACTUALIZARA TODOS ///
$query "UPDATE corredores SET dni='".$dni."',nombre='".$nombre."',apellido='".$apellido."' WHERE ID='".$id."'";
$result=mysql_query($query);
/// COMPROVAMOS QUE SE HAYA EJECUTADO LA CONSULTA(QUERY) , TU COMPROVAVAS EL TEXTO POR LO CUAL SIEMPRE SALDRIA QUE ESTABA BIEN ///
if($result

    echo 
"Actualizacion OK ! "
} else { 
    echo 
"No hubo actualizacion"


//.Cerramos Conexion
include "cerrarconexion.php";
?>

Última edición por s00rk; 06/05/2011 a las 00:37
  #4 (permalink)  
Antiguo 06/05/2011, 07:13
 
Fecha de Ingreso: mayo-2011
Mensajes: 5
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: No Actualiza Update MySQL - PHP

Cita:
Iniciado por s00rk Ver Mensaje
Sigue estando mal el codigo para grabar bien tambien deves usar el WHERE sino estaras actualizando todos los registros en la Tabla.

Tamoco nunca ejecutas la query, el codigo deveria ser asi:

Código PHP:
<?php
/// ESTE TIPO DE INCLUDE ES MEJOR PONERLO SOBRE TODO PARA APRECIARLO MEJOR ///
include "conexion.php";
/// RECUERDA LIMPIAR LAS VARIABLES ///
$id=$_GET['id'];
$dni=$_POST['dni'];
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
/// USAMOS WHERE EN EL UPDATE PARA ACTUALIZAR UN SOLO REGISTRO SINO ACTUALIZARA TODOS ///
$query "UPDATE corredores SET dni='".$dni."',nombre='".$nombre."',apellido='".$apellido."' WHERE ID='".$id."'";
$result=mysql_query($query);
/// COMPROVAMOS QUE SE HAYA EJECUTADO LA CONSULTA(QUERY) , TU COMPROVAVAS EL TEXTO POR LO CUAL SIEMPRE SALDRIA QUE ESTABA BIEN ///
if($result

    echo 
"Actualizacion OK ! "
} else { 
    echo 
"No hubo actualizacion"


//.Cerramos Conexion
include "cerrarconexion.php";
?>
Acabo de probar, me funcionó excelente! Muchisimas gracias, evidentemente soy muy novato en PHP jaja.
Saludos, y gracias nuevamente!
  #5 (permalink)  
Antiguo 06/05/2011, 07:50
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años
Puntos: 6
Respuesta: No Actualiza Update MySQL - PHP

Hola ¿cómo estás?, quiero darte un aporte, después de declarar las variables para modificar haz esto:

<?php
include "conexion.php";
$id=$_GET['id'];
$dni=$_POST['dni'];
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
if($id="" or $dni="" or $nombre="" or $apellido="")
{
$query = "UPDATE corredores SET dni='".$dni."',nombre='".$nombre."',apellido='".$a pellido."' WHERE ID='".$id."'";
$result=mysql_query($query);
}
else
{

}

//.Cerramos Conexion
include "cerrarconexion.php";
?>
  #6 (permalink)  
Antiguo 06/05/2011, 07:55
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años
Puntos: 6
Respuesta: No Actualiza Update MySQL - PHP

Hola ¿cómo estás?, quiero darte un aporte, después de declarar las variables para modificar haz esto:

<?php
include "conexion.php";
$id=$_GET['id'];
$dni=$_POST['dni'];
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
if($bandera>0) // este es el hidden mayor a 0
{
if($id="" or $dni="" or $nombre="" or $apellido="") si al menos una de las variables está vacía
{
echo "FALTAN INGRESAR DATOS"; // muestre error
}
else //sino modifique la base de datos
{
$query = "UPDATE corredores SET dni='".$dni."',nombre='".$nombre."',apellido='".$a pellido."' WHERE ID='".$id."'";
$result=mysql_query($query);
}
}
include "cerrarconexion.php";
?>

Espero que te sirva
  #7 (permalink)  
Antiguo 06/05/2011, 08:01
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años
Puntos: 6
Respuesta: No Actualiza Update MySQL - PHP

y para el cuerpo de la página es lo sgte:

<?php
include "conexion.php";
$id=$_GET['id'];
$result=mysql_query("select * from corredores where id=$id",$conexion);
while($row = mysql_fetch_array($result)) {
echo("<form name=corredores action=grabaract.php?id=$row[0] method=post>
DNI: <input type=text name=dni value=$row[1]><br>
Nombre: <input type=text name=nombre value=$row[2]><br>
Apellido: <input type=text name=apellido value=$row[3]><br>
<input name='enviar' type=submit value=Enviar />
<input name='hdnbandera' type='hidden' value='1' />// declaro el hidden para cuando quiera modificar la BD sabré sí la página recarga al modificar o no
</form>");
}
include "cerrarconexion.php"
?>
  #8 (permalink)  
Antiguo 06/05/2011, 10:07
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 5 meses
Puntos: 48
Respuesta: No Actualiza Update MySQL - PHP

@detective_jd: Dejame decirte primero que tus codigos tienen varios errores jeje desde comparaciones y ejecuciones.

Y lo del hidden no entiendo para que ...
  #9 (permalink)  
Antiguo 08/05/2011, 19:27
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años
Puntos: 6
Respuesta: No Actualiza Update MySQL - PHP

hola s00rk verás me apuré añ escribir lo que quise hacer se lo sgte:

este es el cuerpo de la página:

<?php
include "conexion.php";
$id=$_GET['id'];
$result=mysql_query("select * from corredores where id=$id",$conexion);
while($row = mysql_fetch_array($result))
{
echo("<form name=corredores action=grabaract.php?id=$row[0] method=post>
DNI: <input type=text name=dni value=$row[1]><br>
Nombre: <input type=text name=nombre value=$row[2]><br>
Apellido: <input type=text name=apellido value=$row[3]><br>
<input name='enviar' type=submit value=Enviar />
<input name='hdnbandera' type='hidden' value='1' />// declaro el hidden para cuando quiera modificar la BD sabré sí la página recarga al modificar o no
</form>");
}
include "cerrarconexion.php"
?>

y el php del update:

<?php
include "conexion.php";
$id=$_GET['id'];
$dni=$_POST['dni'];
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
if($bandera>0) // este es el hidden mayor a 0
{
if($id="" or $dni="" or $nombre="" or $apellido="") si al menos una de las variables está vacía
{
echo "FALTAN INGRESAR DATOS"; // muestre error
}
else //sino modifique la base de datos
{
$query = "UPDATE corredores SET dni='".$dni."',nombre='".$nombre."',apellido='".$a pellido."' WHERE ID='".$id."'";
$result=mysql_query($query);
}
}
include "cerrarconexion.php";
?>

lo q quise decir es q para asegurarse que estén escritos todas las cajas de texto q usará un if sí al menos una de las variables están vacías q en la página muestre un mje diciendo q faltan datos x ingresar y lo del hidden es para ver sí la pñagina funciona bien q haga lo mencionado anteriormente eso quise decir.
  #10 (permalink)  
Antiguo 10/05/2011, 10:40
 
Fecha de Ingreso: mayo-2011
Mensajes: 5
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: No Actualiza Update MySQL - PHP

Me funciona perfecto el código, muchas gracias!
Ahora estoy teniendo un problema, los datos que ingreso con algun espacio entre medio la base de datos no me lo devuelve correctamente en el campo, solo me devuelve la primera parte.
Si se ingresó, por ejemplo:
Nombre: Juan Perez
En la base de datos veo:
Nombre: Juan Perez
Pero en el formulario de modificar datos veo:
Nombre: Juan

No lo puedo solucionar, nuevamente mi novatez se ve a la luz!
Saludos
  #11 (permalink)  
Antiguo 10/05/2011, 10:47
 
Fecha de Ingreso: mayo-2011
Mensajes: 5
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: No Actualiza Update MySQL - PHP

Solucionado, falta de comillas simples...
Gracias igual, y perdon por robarles su tiempo!
  #12 (permalink)  
Antiguo 03/12/2014, 16:09
Avatar de cecitn  
Fecha de Ingreso: noviembre-2014
Ubicación: misiones
Mensajes: 44
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: No Actualiza Update MySQL - PHP

muy bueno el codigo aunqueeee me funciona a medias :(

Etiquetas: mysql, 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 00:03.