Foros del Web » Programando para Internet » PHP »

Borrar datos de BBDD desde PHP

Estas en el tema de Borrar datos de BBDD desde PHP en el foro de PHP en Foros del Web. Hola! Mirad, tengo el siguiente codigo: Código PHP: <html> <head> </head> <body> <? include( 'config.php' );  //incluimos el config.php que contiene los datos de la conexión a la db y la sesión if(isset( $_GET [ "id" ])){      $id = ...
  #1 (permalink)  
Antiguo 12/05/2011, 16:53
 
Fecha de Ingreso: abril-2011
Ubicación: En el mundo
Mensajes: 18
Antigüedad: 13 años
Puntos: 1
Borrar datos de BBDD desde PHP

Hola! Mirad, tengo el siguiente codigo:
Código PHP:
<html>
<head>
</head>
<body><?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db y la sesión

if(isset($_GET["id"])){
    
$id=$_GET["id"];
    
//a la variable id la define el metodo GET
    
if(!isset($_SESSION['nom_usuario']))
    {
        echo 
'Para ver los mensajes y crear nuevos, debes de ser usuario. Si ya lo eres, pulsa <a href="login.php">aquí</a> para iniciar sesión. Si aún no tienes cuenta, pulsa <a href="reg.php">aquí</a> para crear una. Es muy facil, y no te llevara más de dos minutos';
    }else{
                echo
'
                    <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1> 
                    <TR><TD>&nbsp;Titulo del mensaje</TD><TD>&nbsp;&nbsp;Creado por&nbsp;&nbsp;</TD><TD>&nbsp;Creado el dia&nbsp;</TD><TD>&nbsp;Contenido&nbsp;</TD></TR>
                '
;  
                
//comprobamos si esa id existe
                
$info=mysql_query("SELECT * FROM mensajes WHERE id_tema='$id' ");
                while(
$info_ok=mysql_fetch_array($info)){
                    
//todo comprobado, ahora solo falta mostrar los datos
                    
echo '<tr><td> <b>'.$info_ok["titulomsg"].'</b><br></td>';
                    
//Aqui nos pasa el id_usuario al nombre de usuario, y nos muestra el nombre una vez convertido
                    
$usuariooo mysql_query("SELECT * from usuarios where id_usuario='".$info_ok["id_usuario"]."'");
                    
$row2 mysql_fetch_array($usuariooo);
                    echo 
'<td>  <b>'.$row2["nom_usuario"].'</b><br></td>';
                    
//Sacamos la fecha de registro mediante la funcion date
                    
$fecha=date("d.m.Y - H:i"$info_ok["fecha"]);
                    echo 
'<td>'.$fecha.'<br></td>';
                    echo 
'<td> <b>'.$info_ok["contenidomsg"].'</b><br></td>';
                    if(
$row2["nom_usuario"] == $_SESSION['nom_usuario']){
                        
?>
                        <td><form method="POST"><input type="submit" name="accion" value="eliminar"></form><br></td></tr>
                        <?
//LINEA 35 la siguiente    
                                                
$accion $_POST["accion"];
                        
$mensaje $info_ok["titulomsg"];
                        if(
$accion == "eliminar" && $mensaje){
                            echo 
$mensaje;
                            
$sql mysql_query("DELETE * FROM mensajes WHERE titulomsg == '$mensaje'");
                        }
                    }else{                    
                        echo 
'<td><br></td></tr>';
                    }
                }        
                echo
'</table><br><br> Si deseas crear un mensaje, puedes crear uno desde aqui:<br>';
                echo
'
                <form action="mensaje.php" method="POST">
                    Titulo del Mensaje: <input type="text" name="titulomsg" size="22" MAXLENGTH="20"><br>
                    Contenido:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<TEXTAREA NAME="contenidomsg" ROWS="5" COLS="60" MAXLENGTH="255"></TEXTAREA><br>
                    '
;
                    
$info2=mysql_query("SELECT * FROM temas WHERE id_tema='$id' ");
                    while(
$info_ok2=mysql_fetch_array($info2))
                    echo
'
                    <SELECT name="tema" hidden>
                    Tema: <option value='
.$info_ok2['id_tema'].'> Tema actual: ('.$info_ok2['titulotema'].')</option>
                    </SELECT>
                    <input type="submit" name="submit" value="Enviar">
                </form><br><br>
                '
;
            }
}else{
    echo
'Debes especificar un idok!';
}
?>
</body>
</html>
Me da dos fallos, el primero, al cargar la pagina me dice:
Código:
Notice: Undefined index: accion in C:\xampp\htdocs\SEAS\mensajetabla.php on line 35
luego si le doy a eliminar, se me va la pagina con los errores, me cargaotra con la tabla de mensajes del tema, y arriba del todo, me pone las descripciones de los temas, y no los elimina, intento poner dos imagenes, una de antes de darle, y la otra de despues.

Antes de darle a eliminar:


Despues de pulsar eliminar:


Espero que me podais ayudar. Muchas gracias!

Última edición por otobusmzn; 12/05/2011 a las 16:58
  #2 (permalink)  
Antiguo 12/05/2011, 17:14
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Borrar datos de BBDD desde PHP

Primero de todo, es normal que te falle cuando cargas la página. Estás intentando recoger una variable $POST["accion"] que no existe en el momento de cargar la página. Ese código que utilizas para borrar un mensaje deberías ponerlo en otra página php y llamar a esa para borrar el mensaje y después redirigir a la anterior.


Es verdad que se podría hacer en la misma página pero no tal como lo has hecho tu.
Primero deberías comprobar que la variable $POST["accion"] existe con isset y si existe realizar el borrado, pero deberías hacerlo antes de realizar la búsqueda de los mensajes o te aparecerá el mensaje que has intentado borrar, porque lo borras después de mostrarlo.

Etiquetas: bbdd, bd, borrar
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 22:08.