Foros del Web » Programando para Internet » PHP »

Ayuda con eliminacion de registros

Estas en el tema de Ayuda con eliminacion de registros en el foro de PHP en Foros del Web. Hola soy yo denuevo tengo una duda con un script para eliminar firmas de mi libro de visitas, el script ya me funcionaba antes de ...
  #1 (permalink)  
Antiguo 23/12/2004, 23:24
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 5 meses
Puntos: 0
Ayuda con eliminacion de registros

Hola soy yo denuevo tengo una duda con un script para eliminar firmas de mi libro de visitas, el script ya me funcionaba antes de ponerle el select y puea ahora no se porque no las borra.
Aqui pongo el codigo de mi libro de visitas

Código PHP:
<?include("capa.php");?>
<html>

<head>
<title>eliminar un registro</title>
</head>

<p align="center">
<?
include("../configuracion.php");
$conn mysql_connect($host,$user,$pass) or die ("<h1><p align=center>Error en la coneccion de la Base de Datos</p></h1>");
mysql_select_db($dbname,$conn) or die ("<h1><p align=center>Error en la base de datos, no existe o esta mal escrito el nombre</p></h1>");
if(!
$HTTP_POST_VARS)
{
//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select id_librovisitas_php From librovisitas_php Order By id_librovisitas_php";
$result=mysql_db_query($dbname,$sSQL);

echo 
"<form action=modificaciones.php?accion=borrar_firma method=post>";
echo 
'<select name="id">';

//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo 
'<option>'.$row["id_librovisitas_php"];}
echo 
"<input type=submit value=borrar>";
echo 
"</form>";
include(
"../index.php");
}else{
$id=$_POST["id"];
?>
Estas seguro que deseas borrarlo?


<a href="<?echo "$_SERVER[PHP_SELF]?accion=borrar_firma&borrar=si&id=$id";?>">Si</a>        <a href="modificaciones.php">no</a>
<?
$borrar
=$_GET["borrar"];
if(
$borrar=="si")
{
$id=$_GET["id"];
$sSQL="Delete From librovisitas_php Where id_librovisitas_php='$id'";
mysql_db_query($dbname,$sSQL);
header("location:modificaciones.php");
}
}
?>
</p>
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #2 (permalink)  
Antiguo 24/12/2004, 04:22
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Cuando das al link de confirmar, generas una peticion GET, no POST. Por eso no vuelve a entrar en el else.

Saludos.

PD: ese header() te dara error porque has enviado salida al navegador, todo el HTML que has sacado al comienzo del script (el <head>).
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 26/12/2004, 23:53
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 5 meses
Puntos: 0
Bueno me podrias decir en que parte tengo que poner el $id=$_GET["id"];? porque yo ya lo busque y no me funciona y pues la verdad no te entendi muy bien dices que primero recivo con el metodo post y pues despues recivo por el metodo get pero dices que no vuelve a entrar en el else entonces como debe de ir? lo que va despues del else debe ir antes? o como
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #4 (permalink)  
Antiguo 27/12/2004, 23:05
Avatar de dmedina83  
Fecha de Ingreso: mayo-2004
Ubicación: Mérida
Mensajes: 96
Antigüedad: 19 años, 11 meses
Puntos: 0
puedes utilizar la variable super global $_REQUEST para evitarte el tener que saber si la variable proviende de un metodo GET o POST lo utilizas de la misma manera ej: $_REQUEST['id']
y para evitar el error del header puedes utilizar este codigo en javascript
<script>
window.location.href='mipagina.php';
</script>

tambien te puede servir de utilidad imprimir en pantalla los valores de todas las variables que estas pasando para saber cual es la que no se envia

print_r($_REQUEST);

y asi tener una idea mas clara de que es lo que tienes que corregir

Espero te sirva de ayuda...
__________________
WebAdictos - Una dosis diaria de web

Última edición por dmedina83; 27/12/2004 a las 23:32
  #5 (permalink)  
Antiguo 28/12/2004, 00:00
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 5 meses
Puntos: 0
No pues la verdad no me funcionobueno pondre denuevo el codigo con las modificaciones que le he hecho para ver si esto influye en algo

Código PHP:
<?include("capa.php");?>
<html>

<head>
<title>eliminar un registro</title>
</head>

<p align="center">
<?
include("../configuracion.php");
if(!
$HTTP_POST_VARS)
{
//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select id_librovisitas_php From librovisitas_php Order By id_librovisitas_php";
$result=mysql_db_query($dbname,$sSQL);

echo 
"<form action=modificaciones.php?accion=borrar_firma method=post>";
echo 
'<select name="id">';

//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo 
'<option>'.$row["id_librovisitas_php"];}
echo 
"<input type=submit value=borrar>";
echo 
"</form>";
include(
"../index.php");
}else{
$id=$_POST["id"];
?>
Estas seguro que deseas esta firma?
<br>
<a href="<?echo "$_SERVER[PHP_SELF]?accion=borrar_firma&borrar=si&id=$id";?>">Si</a>        <a href="modificaciones.php">no</a>
<?
$ssql 
"SELECT * FROM librovisitas_php WHERE id_librovisitas_php = '$id' ORDER BY id_librovisitas_php DESC";
$resultid mysql_query($ssql,$conn) or die ("Error $ssql :".mysql_error()); 
while(
$damefila mysql_fetch_object($resultid))
{
?>
<hr>
<p align="center">       
<table align="center" width="100%" cellspacing="2" cellpadding="0" border="0">
                <tr>
                    <td valign="top" class=fuente8>
<br>
<br>
<b>     
  <?         //si el visitante no introdujo nombre muestro como nombre "Anónimo"
                        
if ($damefila->nombre == "-"){
                                echo 
"Anónimo";
                        }elseif (
$damefila->email != "-") {
                                echo 
'<a href="mailto:' $damefila->email '">' $damefila->nombre '</a>';
                        }else{
                                echo 
$damefila->nombre;
                        }
                
?></b>:<br>                </td></tr>
                <tr><td></td></tr>
                <td valign="top">
                        <b>COMENTARIO:</b>
<p align="justify">
<?php
echo "$var\n";
?></p>
                        <br>
                        <b>PAGINA DE INTERNET:</b><? echo '<a href="' $damefila->url '" style="text-decoration:none" target="_blanck">' $damefila->url '</a>';?>
                  <td valign="top" align="right" background="bg.gif">
                        <b>Puntuacion:</b> <?echo $damefila->valoracion?>
                        <br>
                        <b>Fecha: </b><?echo $damefila->fecha;?></p>
                        <p><b>IP:</b>
<?
if ($ip_mostrar==1)
{
echo 
$damefila->ip_real;
}else{
?>
<img src="ip.gif" alt="ip guardada">
<?
}
?>
</p>
<p>
<?
if($_SESSION["autentificado"]=="si")
{
?>
    Id de la firma: 
<?
    
echo "$damefila->id_librovisitas_php";
}
?>
</p></td>
                </tr>
</table>

                <br>
                <?
               
//termina el bucle while
?>
<hr>
<?
$borrar
=$_GET["borrar"];
if(
$borrar=="si")
{
$id=$_GET["id"];
$sSQL="Delete From librovisitas_php Where id_librovisitas_php='$id'";
mysql_db_query($dbname,$sSQL);
}
}
?>
</p>
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #6 (permalink)  
Antiguo 28/12/2004, 00:33
Avatar de dmedina83  
Fecha de Ingreso: mayo-2004
Ubicación: Mérida
Mensajes: 96
Antigüedad: 19 años, 11 meses
Puntos: 0
Hola segun entendi tu codigo esta de la siguiente forma:

Primero verificas si enviaste informacion por metodo post si no es asi muestras tu lista de ID.
Al momento de hacer el submit ya no cumples tu primer if y por consiguiente
tu variable $id toma el valor del $_POST['id']
ok hasta ahora creo que estamos claros el problema reside en la siguiente parte de tu codigo:

Estas seguro que deseas esta firma?
<br>
<a href="<?echo "$_SERVER[PHP_SELF]?accion=borrar_firma&borrar=si&id=$id";?>">Si</a> <a href="modificaciones.php">no</a>

aqui estas mostrando un link que te va a mandar a la misma pagina y en el cual estas mandando los parametros por el metodo GET por lo que no cumple ninguna condicion de tu codigo (if(!$HTTP_POST_VARS) ya que no estas mandando nada por metodo POST)y por lo que no te ejecuta ninguna instruccion, espero haber sido claro en mi explicacion.

Aqui tienes una opcion de como puedes modificar tu codigo, en esta opcion verifico primero si tengo la variable borrar si es asi ejecuto la instruccion si no es asi se realizan las otras condiciones.

O bien podrias mandar el link a otro script para evitarte todo este lio de Get y Post

Nos Vemos....

Código PHP:
<?include("capa.php");?> 
<html> 

<head> 
<title>eliminar un registro</title> 
</head> 

<p align="center"> 
<? 
include("../configuracion.php"); 
if(
$_GET['borrar']=='si') {
$id=$_GET["id"]; 
$sSQL="Delete From librovisitas_php Where id_librovisitas_php='$id'"
if(
mysql_db_query($dbname,$sSQL)) {
echo 
"Se borro el registro correctamente";


} else {

if(!
$HTTP_POST_VARS

//Creamos la sentencia SQL y la ejecutamos 
$sSQL="Select id_librovisitas_php From librovisitas_php Order By id_librovisitas_php"
$result=mysql_db_query($dbname,$sSQL); 

echo 
"<form action=modificaciones.php?accion=borrar_firma method=post>"
echo 
'<select name="id">'

//Generamos el menu desplegable 
while ($row=mysql_fetch_array($result)) 
{echo 
'<option>'.$row["id_librovisitas_php"];} 
echo 
"<input type=submit value=borrar>"
echo 
"</form>"
include(
"../index.php"); 
}else{ 
$id=$_POST["id"]; 
?> 
Estas seguro que deseas esta firma? 
<br> 
<a href="<?echo "$_SERVER[PHP_SELF]?accion=borrar_firma&borrar=si&id=$id";?>">Si</a>        <a href="modificaciones.php">no</a> 
<? 
$ssql 
"SELECT * FROM librovisitas_php WHERE id_librovisitas_php = '$id' ORDER BY id_librovisitas_php DESC"
$resultid mysql_query($ssql,$conn) or die ("Error $ssql :".mysql_error()); 
while(
$damefila mysql_fetch_object($resultid)) 

?> 
<hr> 
<p align="center">        
<table align="center" width="100%" cellspacing="2" cellpadding="0" border="0"> 
                <tr> 
                    <td valign="top" class=fuente8> 
<br> 
<br> 
<b>      
  <?         //si el visitante no introdujo nombre muestro como nombre "Anónimo" 
                        
if ($damefila->nombre == "-"){ 
                                echo 
"Anónimo"
                        }elseif (
$damefila->email != "-") { 
                                echo 
'<a href="mailto:' $damefila->email '">' $damefila->nombre '</a>'
                        }else{ 
                                echo 
$damefila->nombre
                        } 
                
?></b>:<br>                </td></tr> 
                <tr><td></td></tr> 
                <td valign="top"> 
                        <b>COMENTARIO:</b> 
<p align="justify"> 
<?php 
echo "$var\n"
?></p> 
                        <br> 
                        <b>PAGINA DE INTERNET:</b><? echo '<a href="' $damefila->url '" style="text-decoration:none" target="_blanck">' $damefila->url '</a>';?> 
                  <td valign="top" align="right" background="bg.gif"> 
                        <b>Puntuacion:</b> <?echo $damefila->valoracion?> 
                        <br> 
                        <b>Fecha: </b><?echo $damefila->fecha;?></p> 
                        <p><b>IP:</b> 
<? 
if ($ip_mostrar==1

echo 
$damefila->ip_real
}else{ 
?> 
<img src="ip.gif" alt="ip guardada"> 
<? 

?> 
</p> 
<p> 
<? 
if($_SESSION["autentificado"]=="si"

?> 
    Id de la firma: 
<? 
    
echo "$damefila->id_librovisitas_php"

?> 
</p></td> 
                </tr> 
</table> 

                <br> 
                <? 
               
//termina el bucle while 
?> 
<hr> 
<? 
 

}
?> 
</p>
__________________
WebAdictos - Una dosis diaria de web

Última edición por dmedina83; 28/12/2004 a las 00:34
  #7 (permalink)  
Antiguo 28/12/2004, 01:36
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 5 meses
Puntos: 0
Hay gracias me ha funcionado perfectamente, muchas gracias estuve bayallando con esto durante 1 semana
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #8 (permalink)  
Antiguo 28/12/2004, 21:47
Avatar de dmedina83  
Fecha de Ingreso: mayo-2004
Ubicación: Mérida
Mensajes: 96
Antigüedad: 19 años, 11 meses
Puntos: 0
De nada, espero hayas entendido cual era el problema

es un gusto poder ayudarte
__________________
WebAdictos - Una dosis diaria de web
  #9 (permalink)  
Antiguo 28/12/2004, 23:25
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 5 meses
Puntos: 0
si lo entendi
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
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 07:45.