Foros del Web » Programando para Internet » PHP »

Visualizar registro antes de dar de baja

Estas en el tema de Visualizar registro antes de dar de baja en el foro de PHP en Foros del Web. Hola! Estoy tratando de dar de baja a un registro pero, lo que quiero es visualizarlo antes de eliminarlo y no lo logro. Lo he ...
  #1 (permalink)  
Antiguo 15/01/2005, 20:24
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Visualizar registro antes de dar de baja

Hola!

Estoy tratando de dar de baja a un registro pero, lo que quiero es visualizarlo antes de eliminarlo y no lo logro.

Lo he intentado de dos formas:
1) Ingresando un producto (borrar1.php) y que directamente lo elimine (borrar2.php). De esta forma funciona, no hay problema.
2) Ingresando un producto (borrar1.php), visualizarlo (verprod.php) y que lo elimine (borrar.php). Esto no funciona.

Les dejo los códigos por si alguno puede aprovecharlos y de paso me ayudan, creo que la lógica está bien planteada, pero no encuentro el error.

Gracias!!!
Saludos!
Maru.-

Aquí van los archivos:

borrar1.php

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<?
$Host = "localhost";
$User = "";
$Password = "";
$Base = "baseprod";
$Tabla = "productos";

$Link = mysql_connect ($Host, $User, $Password);
mysql_select_db($Base, $Link);

echo '<FORM METHOD="POST" ACTION="verprod.php">'; // SI CAMBIO POR borrar2.php FUNCIONA
$Query="SELECT * FROM productos WHERE producto='$producto'";
$result=mysql_db_query("baseprod", $Query);

print "Producto:";
echo '<input name="productos">';

mysql_free_result($result)
?>
<INPUT TYPE="SUBMIT" value="Ver">
</FORM>

</body>
</html>


verprod.php

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<?
$Host = "localhost";
$User = "";
$Password = "";
$Base = "baseprod";
$Tabla = "productos";

$Link = mysql_connect ($Host, $User, $Password);
mysql_select_db($Base, $Link);

echo '<FORM METHOD="POST" ACTION="borrar2.php">';

$Query="SELECT * FROM productos WHERE producto='$producto'";
$result=mysql_db_query("baseprod", $Query);

while ($registro=mysql_fetch_array($result))
{
echo "<br> Código: ".$registro['codigo'];
echo "<br> Producto: ".$registro['producto'];
echo "<br> Descripción: ".$registro['descripcion'];
echo "<img src=\"ver.php?id=".$registro['id']."\">";
}
mysql_free_result($result)
?>

<INPUT TYPE="SUBMIT" value="Borrar">
</body>
</html>


borrar2.php

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<?
$Host = "localhost";
$User = "";
$Password = "";
$Base = "baseprod";
$Tabla = "productos";

$Link = mysql_connect ($Host, $User, $Password);
mysql_select_db($Base, $Link);

$Query="DELETE * FROM productos WHERE producto='$producto'";
mysql_db_query("baseprod", $Query);
?>

<div align="center"><b>El Registro se ha Borrado</b></div><br><br>
<div align="center"><a href="listar.php">Visualizar Listado</a>
<div align="center"><a href="javascript:history(-1)">Volver</a></div>

</body>
</html>
  #2 (permalink)  
Antiguo 16/01/2005, 00:24
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
no estas pasando el nombre o ID del producto de una pagina a otra.

saludos
  #3 (permalink)  
Antiguo 16/01/2005, 20:48
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Sism82, gracias por tu respuesta, pero no me doy cuenta de como hacer eso que decis, pasa que lo que me confunde es que si omito verprod.php no tengo problemas, el registro se elimina y lo único que cambia en verprod.php es mostrar los campos del registro para luego si elimarlo.
Podrías explicarme mejor? gracias de nuevo!

Saludos!
Maru.-
  #4 (permalink)  
Antiguo 16/01/2005, 21:10
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Bastará con pasarlo por la url:
en verprod.php:
echo '<FORM METHOD="POST" ACTION="borrar2.php?producto='.$producto.'">';

De esa manera ya estás pasando esa variable a borrar2.php vía GET.

También podrías hacer un campo "hidden" en verprod.php con ese valor para que pase por POST... tú decides.

Saludos
  #5 (permalink)  
Antiguo 17/01/2005, 13:10
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Gracias por tu aporte Jpinedo! lo he probado de la forma que decis, pero lamentablemente sigue haciendo lo mismo: visualiza el registro, pero no lo elimina.
Existen otras alternativas? si sabes de algún ejemplo lo agradecería mucho...
Gracias de nuevo!

Saludos!
Maru.-
  #6 (permalink)  
Antiguo 17/01/2005, 22:36
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Vamos a ver...
Aunque igual debería haberte funcionado con lo que te puse... te voy a poner el ejemplo completo... pero ahora utilizando un campo "hidden" para pasar el valor.
En borrar1.php todo lo que tenga que ver con PHP y la base de datos, está de más. Así que podría llamarse tranquilamente "borrar.html"
borrar.html
Código HTML:
<body>
<form method="POST" action="verprod.php">
Producto:<br />
<input type="text" name="producto" />';
<input type="submit" value="Ver" />
</form>
</body> 
verprod.php
Código PHP:
<body>
<?
$Host 
"localhost";
$User "";
$Password "";
$Base "baseprod";
$Tabla "productos";

$Link mysql_connect ($Host$User$Password);
mysql_select_db($Base$Link);

echo 
'<form method="POST" action="borrar2.php">';

$Query="SELECT * FROM productos WHERE producto='".$_POST['producto']".'";
$result=mysql_query($Query$Link);

while (
$registro=mysql_fetch_array($result))
{
echo 
"<br> Código: ".$registro['codigo'];
echo 
"<br> Producto: ".$registro['producto'];
echo 
"<br> Descripción: ".$registro['descripcion'];
echo 
"<img src=\"ver.php?id=".$registro['id']."\">";
}
mysql_free_result($result)
echo 
"<input type="hidden" name=\"producto\" value=\"".$registro['producto']."\" />";// Aquí le estoy pasandpo la variable en un "hidden"
?>
<input type="submit" value="Borrar" />
</body>
borrar2.php
Código PHP:
<body>
<?
$Host 
"localhost";
$User "";
$Password "";
$Base "baseprod";
$Tabla "productos";

$Link mysql_connect ($Host$User$Password);
mysql_select_db($Base$Link);

$Query="DELETE * FROM productos WHERE producto='".$_POST['producto']."'";
mysql_db_query("baseprod"$Query);
?>

<div align="center"><b>El Registro se ha Borrado</b></div><br><br>
<div align="center"><a href="listar.php">Visualizar Listado</a>
<div align="center"><a href="javascript:history(-1)">Volver</a></div>

</body>
Saludos
  #7 (permalink)  
Antiguo 18/01/2005, 12:56
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Hola jpinedo! gracias nuevamente por tu ayuda, he probado el código tal cual me pasaste y me da error, sigue sin borrar el registro :o(
Pensé que el tema era menos complicado, de hecho debería serlo no? es que hace días que estoy trabada con esto... espero se pueda solucionar...

Saludos!
Maru.-
  #8 (permalink)  
Antiguo 18/01/2005, 13:57
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Ok... el tema no es complicado... partamos desde ahí... seguramente hay un pequeño error que por tanto ignorarlo se volvió invisible... pero vamos a cazarlo!

Primero: No basta conque digas "me da error" porque si te sale algún mensaje de error en pantalla lo más probable es que ahí esté descrito el problema. Por favor da detalles de cómo se produce y qué mensajes aparecen.

Ahora sí... hay que forzar al parser a mostrar todos los errores que se puedan estar cometiendo. Para eso pon esta línea al principio de cada página (menos en borrar.html, porque es HTML).
Código PHP:
<?php error_reporting(E_ALL); ?>
Otra cosa que puede estar pasando es que haya algún error en la conexión o en el momento de ejecutar la consulta, para eso en las funciones ,ysql_connect(), mysql_select_db() y mysql_query() agrega un "or die()" como sigue:
Código PHP:
$Link mysql_connect ($Host$User$Password) or die("Error vp conexion ".mysql_error());
mysql_select_db($Base$Link) or die("Error select db ".mysql_error());

$result mysql_query($Query$Link) or die("error query $Query "mysql_error()); 
Haz esto hazlo en los dos scripts (verprod y borar2).

Saludos
  #9 (permalink)  
Antiguo 19/01/2005, 09:20
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Puse todas las lineas que me dijiste para identificar los errores.
El resultado que tira es: Notice: Undefined variable: registro in c:\foxserv\www\productos\borrar2.php

Es decir que no reconoce la variable registro en esta línea: echo "<br> Dirección: ".$registro['direccion']; - entonces es que en verprod.php no la pasa correctamente?
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 03:10.