Foros del Web » Programando para Internet » PHP »

formulario para actualizar BD

Estas en el tema de formulario para actualizar BD en el foro de PHP en Foros del Web. Hola! La idea que tenía era la de poder modificar desde la web datos como noticias o reseñas sin necesidad de cambiar datos "a mano" ...
  #1 (permalink)  
Antiguo 17/11/2007, 10:07
Avatar de Spydis  
Fecha de Ingreso: mayo-2003
Ubicación: Donosti
Mensajes: 90
Antigüedad: 21 años
Puntos: 1
Pregunta formulario para actualizar BD

Hola! La idea que tenía era la de poder modificar desde la web datos como noticias o reseñas sin necesidad de cambiar datos "a mano" en la BD.
La idea es que ciertas personas que hayan iniciado sesión antes puedan acceder a un formulario en el que les aparezca la información de la BD para poder ser actualizada. En vez de mandar los datos a otro archivo me gustaría hacerlo todo en el mismo, por lo que el formulario se encuentra en review.php?uid=$id&edit y el código para actualizar en review.php?uid=$id&edit2
El código siguiente cumple perfectamente esa función y la idea era que despues de darle a ACTUALIZAR te volviese a llevar al formulario. El único problema es que al darle a ACTUALIZAR te lleva al formulario pero no te muestra los elementos actualizados. Hay que darle a F5 para actualizar y ver lo que ha cambiado:
Código PHP:
if ((isset($_GET['edit']) || isset($_GET['edit2'])) && isset($_SESSION['valid_user']))
{
    
    
    
        if (isset(
$_GET['edit2']))
        {
            
$edit_titulo2 $_POST['titulo2'];
            
$edit_titulo $_POST['titulo']; 
            
$edit_titulo_original $_POST['titulo_original'];     
            
$edit_tipo $_POST['tipo'];    
            
$edit_genero $_POST['genero'];         
            
$edit_company $_POST['company'];     
            
$edit_autor $_POST['autor'];         
            
$edit_duracion $_POST['duracion'];             
            
$edit_estructura $_POST['estructura'];             
            
$edit_puntu $_POST['puntu']; 
            
$edit_texto $_POST['texto'];         
            
$edit_pros $_POST['pros'];    
            
$edit_contras $_POST['contras'];         
            
$edit_video $_POST['video'];
            
            
$insertar "UPDATE reviews SET titulo2 = '$edit_titulo2', titulo = '$edit_titulo',    titulo_original = '$edit_titulo_original', 
            tipo = '$edit_tipo', genero = '$edit_genero', company = '$edit_company', autor = '$edit_autor',
            duracion = '$edit_duracion', estructura = '$edit_estructura', puntu = '$edit_puntu', texto = '$edit_texto',        
            pros = '$edit_pros', contras = '$edit_contras', video = '$edit_video' WHERE id = $id"
;
            
            
$resultado $mysqli->query($insertar);
        }

        
// edición por formulario
            
echo '<form method="post" action="review.php?uid='.$id.'&edit2">';
            echo 
'<table>';
            echo 
'<tr><td>Titulo corto:</td>';
            echo 
'<td><textarea name="titulo2" cols="45" rows="2">'.$titulo2.'</textarea></td></tr>';
            echo 
'<tr><td>Titulo largo:</td>';
            echo 
'<td><textarea name="titulo" cols="45" rows="2">'.$titulo.'</textarea></td></tr>';
            echo 
'<tr><td>Titulo original:</td>';
            echo 
'<td><textarea name="titulo_original" cols="45" rows="2">'.$titulo_original.'</textarea></td></tr>';
            echo 
'<tr><td>Tipo:</td>';
            echo 
'<td><input type="text" name="tipo" value="'.$tipo.'"></td></tr>';
            echo 
'<tr><td>Género:</td>';
            echo 
'<td><textarea name="genero" cols="45" rows="2">'.$genero.'</textarea></td></tr>';
            echo 
'<tr><td>Compañía:</td>';
            echo 
'<td><textarea name="company" cols="45" rows="2">'.$company.'</textarea></td></tr>';
            echo 
'<tr><td>Autor:</td>';
            echo 
'<td><textarea name="autor" cols="45" rows="2">'.$autor.'</textarea></td></tr>';
            echo 
'<tr><td>Duración:</td>';
            echo 
'<td><textarea name="duracion" cols="45" rows="2">'.$duracion.'</textarea></td></tr>';
            echo 
'<tr><td>Estructura:</td>';
            echo 
'<td><input type="text" name="estructura" value="'.$estructura.'"></td></tr>';
            echo 
'<tr><td>Puntuación:</td>';
            echo 
'<td><input type="text" name="puntu" value="'.$puntu.'"></td></tr>';
            echo 
'<tr><td>Texto:</td>';
            echo 
'<td><textarea name="texto" cols="45" rows="5">'.$texto.'</textarea></td></tr>';
            echo 
'<tr><td>Pros:</td>';
            echo 
'<td><textarea name="pros" cols="45" rows="5">'.$pros.'</textarea></td></tr>';
            echo 
'<tr><td>Contras:</td>';
            echo 
'<td><textarea name="contras" cols="45" rows="5">'.$contras.'</textarea></td></tr>';
            echo 
'<tr><td>Video (1 sí - 0 no):</td>';
            echo 
'<td><input type="text" name="video" value="'.$video.'"></td></tr>';
            
            echo 
'<tr><td colspan="2" align="center">';
            echo 
'<input type="submit" value="Actualizar"></td></tr>';
            echo 
'</table></form>';
        
}
else
{
echo 
'LO QUE SEA....';

Alguna idea de como hacer para que me muestre los datos cambiados cuando vuelve al formulario?
  #2 (permalink)  
Antiguo 17/11/2007, 10:13
 
Fecha de Ingreso: marzo-2007
Ubicación: Nayarit,Mexico
Mensajes: 87
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: formulario para actualizar BD

Sí lo que quieres es recargar la página sin necesidad de darle f5, puedes usar javascript poniendo el siguiente código:

Código PHP:
echo '<script>location.reload(true)</script>'
  #3 (permalink)  
Antiguo 17/11/2007, 10:18
Avatar de Spydis  
Fecha de Ingreso: mayo-2003
Ubicación: Donosti
Mensajes: 90
Antigüedad: 21 años
Puntos: 1
Re: formulario para actualizar BD

Lo cierto es que me gustaria que al mandar el formulario, te vuelva a aparecer el formulario pero con los datos ya cambiados. Pensé que poniendo el código de la query delante del formulario solucionaria el problema, pero esa no es la forma...
Debe de haber una forma sin usar javascript, ni ajax, no??
A ver si alguien sabe como se hace
  #4 (permalink)  
Antiguo 17/11/2007, 16:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 55
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: formulario para actualizar BD

Hola.

Tu problema es de fácil solución..
Sólo debes cambiar de posición el formulario y dejarlo que se imprima una vez finalizada la actualización de la base de datos.

Código PHP:
if ((isset($_GET['edit']) || isset($_GET['edit2'])) && isset($_SESSION['valid_user']))

     if
      {
     ....
     ....
     ....
     }
... 
...
...
}
else
{
// Pon aquí el formulario, pero antes haz una lectura
// a la base de datos después de la actualización y carga
// los datos nuevos en el formulario, asi queda la posibilidad
// de ediarlos nuevamente.. También debes poner un mensaje
// de que los datos han sido actualizados exitosamente.

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 10:28.