Foros del Web » Programando para Internet » PHP »

¿Qué debo hacer para poder actualizar correctamente?

Estas en el tema de ¿Qué debo hacer para poder actualizar correctamente? en el foro de PHP en Foros del Web. Hola a todos tengo un listado de alumnos dependiendo el que se elija se pueden actualizar los datos que se desee... Código HTML: <form action= ...

  #1 (permalink)  
Antiguo 08/05/2012, 17:46
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
¿Qué debo hacer para poder actualizar correctamente?

Hola a todos tengo un listado de alumnos dependiendo el que se elija se pueden actualizar los datos que se desee...

Código HTML:
<form action="<?php echo $editFormAction; ?>" method="post" id="form1" enctype="multipart/form-data">
  <table>
<td height="37" align="right">Nombre:</td>
        <td height="37"><input type="text" name="nombre" value="<?php echo htmlentities($row_alumnos['Nombre']); ?>" size="32" /></td>

      <td align="right"><font size="2">Foto:</font></td>
      <td>
      <?php 
$r=$row_alumnos['ruta']; 
if($r!='../fotos/'){
echo "<img src='$r' > ";
}
else{
echo "<img src='../fotos/usuarioX.png' > ";
}
?> 

.
.
.
</table>
    <input type="hidden" name="MM_update" value="form1" />
  <input type="hidden" name="rfcalumno" value="<?php echo $row_alumnos['rfcalumno']; ?>" />
</form> 
Explico este formulario muestra los datos del alumno condicionado por su matricula... es decir los datos de cierta matricula, bien mediante una consulta a mi BD logro obtener todos los datos que necesito (Nombre, AP, AM, Carrera, etc)
El problema lo tengo con el apartado fotografía como verán si la muestro pero al momento de actualizar mi registro... aunque no cambie la foto (por ejemplo si cambio la dirección) la foto cambia (y pone por defecto la imagen de Usuario)

Con este código estoy actualizando:
Código PHP:
$destino="../fotos";
move_uploaded_file ($_FILES['nomArchi'] ['tmp_name'], $destino '/' $_FILES ['nomArchi'] ['name']);
$ruta="../fotos/".$_FILES['nomArchi'] ['name'];
$r=$ruta;

if ((isset(
$_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  
$updateSQL sprintf("UPDATE alumnos SET  Nombre=%s, ApellidoPaterno=%s, ApellidoMaterno=%s,ruta='$r', ...  WHERE clavealumno=%s",
                      
                       
GetSQLValueString($_POST['nombre'], "text"),
                       
GetSQLValueString($_POST['ap'], "text"),
                       
GetSQLValueString($_POST['am'], "text"),
                       .
                                           .
                                           .
                       
GetSQLValueString($_POST['clavealumno'], "text")); 

Mi problema es que en el formulario veo todos los datos que corresponde a la matricula deseada.... incluso la foto... pero si actualizo y esa matricula ya tenia fotografía real del alumno me pone la imagen por defecto usuarioX.png...
Tal vez mi error sea tonto pero no tengo mucho en PHP y aun me cuestan algunas cosas GRACIAS por su ayuda
  #2 (permalink)  
Antiguo 08/05/2012, 17:55
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Aclaro este código si funciona cuando quiero cambiar de la imagen por defecto a la real... pero si actualizo otro dato por ejemplo el email falla
  #3 (permalink)  
Antiguo 08/05/2012, 17:59
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

no entiendo bien el codigo esta algo confuso, pero me parece q el error es algo "obvio", porque cuando actualizas la base de datos, actualizas la ruta de la imagen, supongo que tienes que hacer una validacion primero para ver si se ha subido una imagen o no, porque si no se ha subido, por defecto se guardara en el campu ruta un valor vacio no tendra nada
  #4 (permalink)  
Antiguo 08/05/2012, 18:05
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Creo que hiria asi:
Código PHP:
Ver original
  1. $destino="../fotos";
  2. if (is_uploaded_file($_FILES['nomArchi']) == true) {
  3.     move_uploaded_file ($_FILES['nomArchi'] ['tmp_name'], $destino . '/' . $_FILES ['nomArchi'] ['name']);
  4.     $ruta="../fotos/".$_FILES['nomArchi'] ['name'];
  5.     $updatePhoto = ', ruta = ' . $ruta;
  6. } else {
  7.     $updatePhoto = null;
  8. }
  9.  
  10. if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  11.   $updateSQL = sprintf("UPDATE alumnos SET  Nombre=%s, ApellidoPaterno=%s, ApellidoMaterno=%s" . $updatePhoto . ", ...  WHERE clavealumno=%s",
  12.                      
  13.                        GetSQLValueString($_POST['nombre'], "text"),
  14.                        GetSQLValueString($_POST['ap'], "text"),
  15.                        GetSQLValueString($_POST['am'], "text"),
  16.                        .
  17.                                            .
  18.                                            .
  19.                        GetSQLValueString($_POST['clavealumno'], "text"));


verifico si se ha subido un arvhico via HTTP POST, y asi la variable $updatePhoto, asumira un valor donde se actualiza el campo 'ruta', de lo contrario, la variable $updatePhoto, estara vacia y el campo 'ruta' se mantendra intacto con el mismo valor
  #5 (permalink)  
Antiguo 08/05/2012, 18:05
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Cita:
Iniciado por rudy69 Ver Mensaje
no entiendo bien el codigo esta algo confuso, pero me parece q el error es algo "obvio", porque cuando actualizas la base de datos, actualizas la ruta de la imagen, supongo que tienes que hacer una validacion primero para ver si se ha subido una imagen o no, porque si no se ha subido, por defecto se guardara en el campu ruta un valor vacio no tendra nada
Gracias por tu pronta respuesta si supongo que es mi error por eso ponía quizá algo obvio... bien ahora serían tan amable de ayudarme tengo este código para validar

Código PHP:
<?php 
$r
=$row_alumnos['ruta']; 
if(
$r!='../fotos/'){
echo 
"<img src='$r' > ";
}
else{
echo 
"<img src='../fotos/usuarioX.png' > ";
}
?>
Pero no se como meterlo en la parte

Código PHP:
$destino="../fotos";
move_uploaded_file ($_FILES['nomArchi'] ['tmp_name'], $destino '/' $_FILES ['nomArchi'] ['name']);
$ruta="../fotos/".$_FILES['nomArchi'] ['name'];
$r=$ruta
Para actualizar la ruta correctamente GRACIAS Nuevamente
  #6 (permalink)  
Antiguo 08/05/2012, 18:10
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Cita:
Iniciado por rudy69 Ver Mensaje
Creo que hiria asi:
Código PHP:
Ver original
  1. $destino="../fotos";
  2. if (is_uploaded_file($_FILES['nomArchi']) == true) {
  3.     move_uploaded_file ($_FILES['nomArchi'] ['tmp_name'], $destino . '/' . $_FILES ['nomArchi'] ['name']);
  4.     $ruta="../fotos/".$_FILES['nomArchi'] ['name'];
  5.     $updatePhoto = ', ruta = ' . $ruta;
  6. } else {
  7.     $updatePhoto = null;
  8. }
  9.  
  10. if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  11.   $updateSQL = sprintf("UPDATE alumnos SET  Nombre=%s, ApellidoPaterno=%s, ApellidoMaterno=%s" . $updatePhoto . ", ...  WHERE clavealumno=%s",
  12.                      
  13.                        GetSQLValueString($_POST['nombre'], "text"),
  14.                        GetSQLValueString($_POST['ap'], "text"),
  15.                        GetSQLValueString($_POST['am'], "text"),
  16.                        .
  17.                                            .
  18.                                            .
  19.                        GetSQLValueString($_POST['clavealumno'], "text"));


verifico si se ha subido un arvhico via HTTP POST, y asi la variable $updatePhoto, asumira un valor donde se actualiza el campo 'ruta', de lo contrario, la variable $updatePhoto, estara vacia y el campo 'ruta' se mantendra intacto con el mismo valor
GRACIAS por tu respuesta funciona para cuando ya existe la foto pero sino no sube la nueva
  #7 (permalink)  
Antiguo 08/05/2012, 18:14
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Probe con el código si ya existia foto ya no la cambia por la imagen por defecto...
pero si no existe y quiero subir la imagen del alumno no lo hace
  #8 (permalink)  
Antiguo 08/05/2012, 18:15
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Yo entiendo asi:
Codigo 1, validas si el campo "ruta" esta vacio, si esta vacio, muestras la imagen por defecto, correcto?

Ahora, si le das al boton "submit", en teoria creo que piensas que envias una variable con el nombre "nomArchi" que contiene una nueva imagen para el alumno, la cual no la estas mandando, para verificar lo que te digo, puedes hacer var_dump($_FILES['nomArchi']), y apuesto que no te imprime nada, porque la variable esta nula, no estas subiendo ningun archivo,

Tienes que agregar un 'input' tipo 'file' con nombre 'nomArchi', y de paso, cuando el usuario le de 'submit' tienes que validar si el usuario ha subido un archivo, con los codigos que te pase

Código PHP:
Ver original
  1. if (is_uploaded_file($_FILES['nomArchi']) == true) {
  2.     move_uploaded_file ($_FILES['nomArchi'] ['tmp_name'], $destino . '/' . $_FILES ['nomArchi'] ['name']);
  3.     $ruta="../fotos/".$_FILES['nomArchi'] ['name'];
  4.     $updatePhoto = ', ruta = ' . $ruta;
  5. } else {
  6.     $updatePhoto = null;
  7. }

verifico si se ha subido el archivo correctamente, y procedo a actualizar, de lo contrario, no realizo ninguna accion
  #9 (permalink)  
Antiguo 08/05/2012, 18:44
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Cita:
Iniciado por rudy69 Ver Mensaje
Yo entiendo asi:
Codigo 1, validas si el campo "ruta" esta vacio, si esta vacio, muestras la imagen por defecto, correcto?

Ahora, si le das al boton "submit", en teoria creo que piensas que envias una variable con el nombre "nomArchi" que contiene una nueva imagen para el alumno, la cual no la estas mandando, para verificar lo que te digo, puedes hacer var_dump($_FILES['nomArchi']), y apuesto que no te imprime nada, porque la variable esta nula, no estas subiendo ningun archivo,

Tienes que agregar un 'input' tipo 'file' con nombre 'nomArchi', y de paso, cuando el usuario le de 'submit' tienes que validar si el usuario ha subido un archivo, con los codigos que te pase

Código PHP:
Ver original
  1. if (is_uploaded_file($_FILES['nomArchi']) == true) {
  2.     move_uploaded_file ($_FILES['nomArchi'] ['tmp_name'], $destino . '/' . $_FILES ['nomArchi'] ['name']);
  3.     $ruta="../fotos/".$_FILES['nomArchi'] ['name'];
  4.     $updatePhoto = ', ruta = ' . $ruta;
  5. } else {
  6.     $updatePhoto = null;
  7. }

verifico si se ha subido el archivo correctamente, y procedo a actualizar, de lo contrario, no realizo ninguna accion

Tienes razón en el primero valido si es vació muestro la imagen por defecto...

Entiendo tu lógica validar mi file... lo que me cuesta mucho trabajo es la sintaxis no se como debería hacerlo ...
Gracias
  #10 (permalink)  
Antiguo 08/05/2012, 18:55
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

pega todo el codigo completo, asi te ayudo a corregirlo, es una weba escribirlo todo de nuevo, ademas no se como lo tienes realmente, pega todo el formulario, y pega todo el script donde actualizas la base de datos
  #11 (permalink)  
Antiguo 08/05/2012, 19:08
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Cita:
Iniciado por rudy69 Ver Mensaje
pega todo el codigo completo, asi te ayudo a corregirlo, es una weba escribirlo todo de nuevo, ademas no se como lo tienes realmente, pega todo el formulario, y pega todo el script donde actualizas la base de datos
Ok gracias
Formulario para ver los datos del alumno deseado
Código HTML:
<form action="<?php echo $editFormAction; ?>" method="post" id="form1" enctype="multipart/form-data">


<td>
      <?php 
$r=$row_alumnos['ruta']; 
if($r!='../fotos/'){
echo "<img src='$r' > ";
}
else{
echo "<img src='../fotos/usuarioX.png' > ";
}
?> 

Actualizar con el código q me pasaste

Código PHP:
$destino="../fotos";
if (
is_uploaded_file($_FILES['nomArchi']) == true) {
    
move_uploaded_file ($_FILES['nomArchi'] ['tmp_name'], $destino '/' $_FILES ['nomArchi'] ['name']);
    
$ruta="../fotos/".$_FILES['nomArchi'] ['name'];
    
$updatePhoto ', ruta = ' $ruta;
} else {
    
$updatePhoto null;
    
}

if ((isset(
$_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  
$updateSQL sprintf("UPDATE alumnos SET  Nombre=%s, ApellidoPaterno=%s, ApellidoMaterno=%s" $updatePhoto " , nacimiento=%s,idgrado=%s, Sexo=%s, Calle=%s, Colonia=%s, telefono=%s, Email=%s, estado=%s WHERE clavealumno=%s",
                      
                       
GetSQLValueString($_POST['nombre'], "text"),
                       
GetSQLValueString($_POST['ap'], "text"),

GetSQLValueString($_POST['rfcalumno'], "text"));

  
mysql_select_db($database_connection$connection);
  
$Result1 mysql_query($updateSQL$connection) or die(mysql_error()); 
Lo he intentado y no me funciona :(

Gracias por tu ayuda

Última edición por Briss; 09/05/2012 a las 10:34
  #12 (permalink)  
Antiguo 09/05/2012, 11:15
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

estoy probando este codigo

Código PHP:
$nombre_archivo $http_post_files['nomArchi']['name']; 
$tipo_archivo $http_post_files['nomArchi']['type']; 
$tamano_archivo $http_post_files['nomArchi']['size']; 
// se define ruta
$ruta "images/".$nombre_archivo;
// consultamos parametros
if (!((strpos($tipo_archivo"jpg")) && ($tamano_archivo 10000000000)))
{
echo 
'<script type="text/javascript">' "\n";
echo 
'window.alert("! Por favor verifique que la imagen concuerde con los requerimientos y reintentelo ¡")';
echo 
'</script>';
}
else
{
if (
move_uploaded_file($http_post_files['imagen']['tmp_name'], $ruta))

Y al actualizar mando '$ruta'

Pero siempre me manda el alert
  #13 (permalink)  
Antiguo 09/05/2012, 14:58
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

lo resolviste?
  #14 (permalink)  
Antiguo 09/05/2012, 15:33
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

NOP aun NO

ES más ya me hice un enredo total XD
  #15 (permalink)  
Antiguo 09/05/2012, 16:03
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 11 años, 11 meses
Puntos: 6
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Hola.

Código PHP:
Ver original
  1. $destino="../fotos";
  2. if (is_uploaded_file($_FILES['nomArchi'])== true) {
  3.     move_uploaded_file ($_FILES['nomArchi']['tmp_name'], $destino .'/'. $_FILES ['nomArchi']['name']);
  4.     $ruta = "../fotos/".$_FILES['nomArchi']['name'];
  5.     $updatePhoto = ', ruta = ' .$ruta;
  6. } else {
  7.     $updatePhoto = null;
  8. }

si te sube bien la foto ?
Este pedazo ya te sirvió ?? y que te falta por resolver?
  #16 (permalink)  
Antiguo 09/05/2012, 16:21
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Lo que hace código es que si la imagen ya existe (la foto del alumno) ya no la reemplaza por la imagen por defecto...
Ahora lo q falta es que suba la fotografía (en caso de que al registrar el alumno no se halla subido su foto y este tomando la imagen por defecto)
  #17 (permalink)  
Antiguo 09/05/2012, 16:44
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 11 años, 11 meses
Puntos: 6
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

por eso si este código ya te funciona para subir la imagen:

Código PHP:
$destino="../fotos";
if (
is_uploaded_file($_FILES['nomArchi'])== true) {
    
move_uploaded_file ($_FILES['nomArchi']['tmp_name'], $destino .'/'$_FILES ['nomArchi']['name']);
    
$ruta "../fotos/".$_FILES['nomArchi']['name'];
    
$updatePhoto ', ruta = ' .$ruta;
} else {
    
$updatePhoto null;

y lo que falta es que si no existe la imagen que coloque por defecto una?, si es asi solo es cambiar el $updatePhoto = null; del else por $updatePhoto =', ruta = ../fotos/usuarioX.png';

el codigo seria:

Código PHP:
$destino="../fotos";
if (
is_uploaded_file($_FILES['nomArchi'])== true) {
    
move_uploaded_file ($_FILES['nomArchi']['tmp_name'], $destino .'/'$_FILES ['nomArchi']['name']);
    
$ruta "../fotos/".$_FILES['nomArchi']['name'];
    
$updatePhoto ', ruta = ' .$ruta;
} else {
    
$updatePhoto ', ruta = ../fotos/usuarioX.png';

Donde si la imagen fue subida $updatePhoto quedaría con la ruta de la imagen y si no entonces $updatePhoto colocaría la imagen por defecto.

Creo que podría ser asi y ya con esto no abria necesidad de hacer la condicion en el formulario.

Código PHP:
$r=$row_alumnos['ruta']; 
if(
$r!='../fotos/'){
echo 
"<img src='$r' > ";
}
else{
echo 
"<img src='../fotos/usuarioX.png' > ";

ya que siempre va a tener una ruta guardada ya sea la de por defecto o la que se haya subido.
  #18 (permalink)  
Antiguo 09/05/2012, 16:51
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Cita:
Iniciado por Vector_Latino Ver Mensaje
por eso si este código ya te funciona para subir la imagen:

Código PHP:
$destino="../fotos";
if (
is_uploaded_file($_FILES['nomArchi'])== true) {
    
move_uploaded_file ($_FILES['nomArchi']['tmp_name'], $destino .'/'$_FILES ['nomArchi']['name']);
    
$ruta "../fotos/".$_FILES['nomArchi']['name'];
    
$updatePhoto ', ruta = ' .$ruta;
} else {
    
$updatePhoto null;

y lo que falta es que si no existe la imagen que coloque por defecto una?, si es asi solo es cambiar el $updatePhoto = null; del else por $updatePhoto =', ruta = ../fotos/usuarioX.png';

el codigo seria:

Código PHP:
$destino="../fotos";
if (
is_uploaded_file($_FILES['nomArchi'])== true) {
    
move_uploaded_file ($_FILES['nomArchi']['tmp_name'], $destino .'/'$_FILES ['nomArchi']['name']);
    
$ruta "../fotos/".$_FILES['nomArchi']['name'];
    
$updatePhoto ', ruta = ' .$ruta;
} else {
    
$updatePhoto ', ruta = ../fotos/usuarioX.png';

Donde si la imagen fue subida $updatePhoto quedaría con la ruta de la imagen y si no entonces $updatePhoto colocaría la imagen por defecto.

Creo que podría ser asi y ya con esto no abria necesidad de hacer la condicion en el formulario.

Código PHP:
$r=$row_alumnos['ruta']; 
if(
$r!='../fotos/'){
echo 
"<img src='$r' > ";
}
else{
echo 
"<img src='../fotos/usuarioX.png' > ";

ya que siempre va a tener una ruta guardada ya sea la de por defecto o la que se haya subido.

Gracias por tu ayuda creo que no me explique bien, lo que hace el código es que ya no remplaza la foto del alumno por la imagen por defecto (Anteriormente si actualizaba algun dato del alumno por ejemplo Su email... la imagen tambien se cambiaba de la foto del alumno a la imagen por defecto)
Pero con el código q me proporcionaron ya no existe ese problma si cambio el email la foto queda intacta...
Pero al querer actualizar la foto por ejemplo si al inscribir al alumno no se subio y tiene la imagen por defecto... y quiero cambiarla por su foto real... no sube nada
  #19 (permalink)  
Antiguo 09/05/2012, 17:41
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 11 años, 11 meses
Puntos: 6
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Hola,

Estuve haciendo un formulario muy sencillo, ya tu lo adaptaras a los datos que necesitas.

el formulario seria algo asi:

Código PHP:
<?php
function Conectarse(){
    if (!(
$link=mysql_connect("localhost","root",""))){
        exit();
    }
    if (!
mysql_select_db("nombreBaseDeDatos",$link)){
        exit();
    }
    return 
$link;
}
$link=Conectarse();
$alumno mysql_query("SELECT *  FROM `alumnos` where `id`= 123 LIMIT 1;",$link) or die(mysql_error()); 
  
?>
<form action="procesar.php" method="post" id="form1" enctype="multipart/form-data">
    Nombre:<br>
    <input type="text" name="name" value="<?php echo mysql_result$alumno 0,'nombre' ); ?>"/><br>
    Apellido:<br>
    <input type="text" name="apellido" value="<?php echo mysql_result$alumno 0,'apellidos' ); ?>"/><br>
    Foto:<br>
    <img src="<?php echo mysql_result$alumno 0,'ruta' ); ?>" /><br>
    Cambiar:
    <input type="file" name="foto" /><br>
    
    <input type="submit" value="Actualizar Datos"/><br>
</form>
Lo primero me conecto a la base de datos.
Luego muestro en el formulario los datos de un alumno determinado, en este caso suponiendo que cada alumno tiene un ID muestro los datos del alumno con id= 123.

con mysql_query ago laconsulta y en el formulario lo lleno los datos del alumno tomandolos con mysql_result, la imagen estaria en el campo "ruta", el cual siempre va a tener un valor sea la imagen por defecto o una nueva, luego coloco el input FILE que es para actualizar la imagen cuantas veces se quiera.
y por ultimo el submit, cada input con un su nombre.

Este formulario lo mando a la pagina procesar.php con POST, el codigo de procesar seria:

Código PHP:
$destino="../fotos/";
if (
is_uploaded_file($_FILES['foto']['tmp_name'])== true) { 
    
move_uploaded_file ($_FILES['foto']['tmp_name'], $destino.$_FILES ['foto']['name']); 
    
$ruta $destino.$_FILES['foto']['name']; 
    
$updatePhoto ', ruta = ' .$ruta
}else {
    
$updatePhoto $destino.'usuarioX.png'
}
$result mysql_query("UPDATE `alumnos` SET `nombre` = '".addslashes($_POST['name'])."', `apellidos` ='".addslashes($_POST['apellidos'])."', `ruta` ='".$updatePhoto."' WHERE (`alumno`.`id` ='123');",$link);
echo 
$updatePhoto
El código te debería funcionar correctamente.
Cualquier duda la colocas...
Espero que te sirva, Saludos.
  #20 (permalink)  
Antiguo 09/05/2012, 18:11
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Gracias por tu respuesta y sobre todo por la explicación

he adoptado el código q me indicas y solo tengo un error... el formulario se muestra bien y la imagen al actualizar tambien... solo que al presionar el boton enviar me arroja un error

Warning</b>: Cannot modify header information - headers already sent by in <b>C:\xampp\htdocs\...</b> on line <b>116</b><br />

Yo actualizo asi
Código PHP:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
 
$updateSQL sprintf("UPDATE alumnos SET  Nombre=%s, ApellidoPaterno=%s, ApellidoMaterno=%s, `ruta` ='".$updatePhoto."', WHERE rfcalumno=%s",
                      
                       
GetSQLValueString($_POST['nombre'], "text"),
                      
                       
GetSQLValueString($_POST['rfcalumno'], "text"));
echo 
$updatePhoto;  

 
mysql_select_db($database_connection$connection);
  
$Result1 mysql_query($updateSQL$connection) or die(mysql_error());

  
$updateGoTo "index.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$updateGoTo .= (strpos($updateGoTo'?')) ? "&" "?";
    
$updateGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$updateGoTo)); AQUI ME MARCA EL ERROR

Perdona tanta ignorancia jejeje
  #21 (permalink)  
Antiguo 09/05/2012, 18:18
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 11 años, 11 meses
Puntos: 6
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

solo es cuestión de quitar el echo $updatePhoto;

Creo que así ya te funcionaria.
  #22 (permalink)  
Antiguo 09/05/2012, 18:22
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Ya cheque y es un error de la cabecera algo asi... antes ya vi y si actualiza solo que la ruta pues no debería ser haci espero tu ayuda

mira en mi base se guardo asi

, fotos = ../fotos/12.jpg

y antes las guardaba así ../fotos/123.jpg


en este pedacito de código no se como deberia ir

$updatePhoto = ', fotos = ' .$ruta;
  #23 (permalink)  
Antiguo 09/05/2012, 18:25
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Ya me salio cambio por esta linea

$updatePhoto = $ruta="../fotos/".$_FILES['nomArchi'] ['name'];

GRACIAS
  #24 (permalink)  
Antiguo 09/05/2012, 18:25
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 11 años, 11 meses
Puntos: 6
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

mmmm ya vi que era, en la parte de subir la foto:

Código PHP:
Ver original
  1. $destino="../fotos/";
  2. if (is_uploaded_file($_FILES['foto']['tmp_name'])== true) {
  3.     move_uploaded_file ($_FILES['foto']['tmp_name'], $destino.$_FILES ['foto']['name']);
  4.     $ruta = $destino.$_FILES['foto']['name'];
  5.     $updatePhoto = $ruta;
  6. }else {
  7.     $updatePhoto = $destino.'usuarioX.png';
  8. }
  9. $result = mysql_query("UPDATE `alumnos` SET `nombre` = '".addslashes($_POST['name'])."', `apellidos` ='".addslashes($_POST['apellidos'])."', `ruta` ='".$updatePhoto."' WHERE (`alumno`.`id` ='123');",$link);

esque antes habia colocado $updatePhoto = ', ruta = ' .$ruta; y es $updatePhoto = $ruta;

con esto ya coje
  #25 (permalink)  
Antiguo 09/05/2012, 18:27
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Ahora ya sale subir una nueva imagen... pero cuando actualizo por ejemplo la dirreción me cambia la imagen a UsuarioX.png
  #26 (permalink)  
Antiguo 09/05/2012, 18:37
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 11 años, 11 meses
Puntos: 6
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

lo que puedes hacer es colocar in input oculto con la imagen actual y colocar el valor en el else cuando se sube la imagen.

algo como esto:

Código HTML:
Ver original
  1. Foto:<br>
  2.     <img src="<?php echo mysql_result( $alumno , 0,'ruta' ); ?>" /><br>
  3. Cambiar:
  4.     <input type="hidden" name="defaultIMG" value="<?php echo mysql_result( $alumno , 0,'ruta' ); ?>" />
  5.     <input type="file" name="foto" /><br>

y en procesar.php colocas:

Código PHP:
Ver original
  1. if (is_uploaded_file($_FILES['foto']['tmp_name'])== true) {
  2.     move_uploaded_file ($_FILES['foto']['tmp_name'], $destino.$_FILES ['foto']['name']);
  3.     $ruta = $destino.$_FILES['foto']['name'];
  4.     $updatePhoto = $ruta;
  5. }else {
  6.     $updatePhoto = $_POST['defaultIMG'];
  7. }

prueba esto a ver si te coge.
  #27 (permalink)  
Antiguo 09/05/2012, 18:50
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 11 años, 11 meses
Puntos: 6
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

o tambien podrias hacer en procesar.php esto:

Código PHP:
Ver original
  1. if (is_uploaded_file($_FILES['foto']['tmp_name'])== true) {
  2.     move_uploaded_file ($_FILES['foto']['tmp_name'], $destino.$_FILES ['foto']['name']);
  3.     $ruta = $destino.$_FILES['foto']['name'];
  4.     $updatePhoto = ",`ruta` ='".$ruta."'";
  5. }else {
  6.     $updatePhoto = '';
  7. }
  8. // y cuando vayas a actualizar haces:
  9.  $updateSQL = sprintf("UPDATE alumnos SET  Nombre=%s, ApellidoPaterno=%s, ApellidoMaterno=%s".$updatePhoto.", WHERE rfcalumno=%s",

Creo que esto también funcionaria y es mucho mas segura que la que coloque antes.
Espero te sirva.

Última edición por Vector_Latino; 09/05/2012 a las 18:58
  #28 (permalink)  
Antiguo 10/05/2012, 10:38
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Cita:
Iniciado por Vector_Latino Ver Mensaje
o tambien podrias hacer en procesar.php esto:

Código PHP:
Ver original
  1. if (is_uploaded_file($_FILES['foto']['tmp_name'])== true) {
  2.     move_uploaded_file ($_FILES['foto']['tmp_name'], $destino.$_FILES ['foto']['name']);
  3.     $ruta = $destino.$_FILES['foto']['name'];
  4.     $updatePhoto = ",`ruta` ='".$ruta."'";
  5. }else {
  6.     $updatePhoto = '';
  7. }
  8. // y cuando vayas a actualizar haces:
  9.  $updateSQL = sprintf("UPDATE alumnos SET  Nombre=%s, ApellidoPaterno=%s, ApellidoMaterno=%s".$updatePhoto.", WHERE rfcalumno=%s",

Creo que esto también funcionaria y es mucho mas segura que la que coloque antes.
Espero te sirva.
Gracias mil por tu ayuda en verdad... segui este ultimo código q me indicas...
(ya no era el necesario el de arriba me quede con esa duda...) bueno cambiando esta parte tengo este error
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '../fotos12.jpg'', n

12.jpj es la imagen q intento subir ya etsoy checando cual podría ser mi error
  #29 (permalink)  
Antiguo 10/05/2012, 10:51
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

Gracias por toda tu ayuda ya cheque mi error era una coma antes de ".$updatePhoto." estoy checando y creo que ya hace lo que debía Mil gracias
  #30 (permalink)  
Antiguo 10/05/2012, 12:25
Avatar de Vector_Latino  
Fecha de Ingreso: mayo-2012
Mensajes: 25
Antigüedad: 11 años, 11 meses
Puntos: 6
Respuesta: ¿Qué debo hacer para poder actualizar correctamente?

De nada , asi es la programación hay tener muuuuuuuucha paciencia porque sino termina uno y sin resolver el problema jajaja.
Cualquier otro problemilla aca se resuelve

Etiquetas: formulario, html, poder, registro, sql, usuarios
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 18:50.