Foros del Web » Programando para Internet » PHP »

No pasar ID despues de eliminado

Estas en el tema de No pasar ID despues de eliminado en el foro de PHP en Foros del Web. Saludos, alguien sabrá como hacer para que despues de yo eliminar un producto de mi panel de control este no me pase el id a ...
  #1 (permalink)  
Antiguo 20/08/2008, 10:22
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
No pasar ID despues de eliminado

Saludos, alguien sabrá como hacer para que despues de yo eliminar un producto de mi panel de control este no me pase el id a la pagina destino???...

me explico.. tengo un panel de control en el cual me me muestra un panel panel de ingreso de imagenes y debajo de la misma me muestra las fotos que estan cargadas para X producto.. y esas imagenes tienen la opcion a la vez de eliminar, es decir, en el mismo panel para ingreso tiene la opcion de ver las fotos y de eliminarlas... pero cuando elimino una foto este regresa al mismo formulario tomando en el URL el id de la foto... como hago para q esto no pase????

lo idal seria q volviera al mismo producto...


en la pagina de eliminar hice algo asi.. pero me devuelve al producto de id = 1 y no al relacionado con la imagen seleccionada

Código PHP:
<?php require_once('../Connections/alba.php'); ?>
<?php
function GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}

mysql_select_db($database_alba$alba);
$query_Recordset2 "SELECT prod_id FROM galeria";
$Recordset2 mysql_query($query_Recordset2$alba) or die(mysql_error());
$row_Recordset2 mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 mysql_num_rows($Recordset2);

if ((isset(
$_GET['id'])) && ($_GET['id'] != "")) {
  
$deleteSQL sprintf("DELETE FROM galeria WHERE id=%s",
                       
GetSQLValueString($_GET['id'], "int"));

  
mysql_select_db($database_alba$alba);
  
$Result1 mysql_query($deleteSQL$alba) or die(mysql_error());

  
$deleteGoTo "http://www.indexa.com.ve/albarracin/admin/ing_img_prod.php?id=".$row_Recordset2['prod_id'];
/*  if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }*/
  
header(sprintf("Location: %s"$deleteGoTo));
}
?>
<?php
mysql_free_result
($Recordset2);
?>
Gracias
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #2 (permalink)  
Antiguo 20/08/2008, 10:41
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No pasar ID despues de eliminado

Tiene bastante sentido, considerando que tu consulta es "SELECT prod_id FROM galeria" es lógico entonces que tome el primer valor (1)

Sin conocer tu tabla, creo que deberías cambiar esa consulta a

SELECT prod_id FROM galeria WHERE id=$_GET['id']

y luego redireccionar pasando como parámetro el valor de $prod_id


Saludos.
  #3 (permalink)  
Antiguo 20/08/2008, 10:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No pasar ID despues de eliminado

Para obtener el ID correcto sería cuestión que cambiaras esta consulta:
Código PHP:
$query_Recordset2 "SELECT prod_id FROM galeria"
y que le agregues el ID de la imagen actual para que te de el id del producto correcto, ya que si tu no agregas la clausula WHERE te va a dar el primer ID que encuentre de la tabla.

Saludos.
  #4 (permalink)  
Antiguo 20/08/2008, 10:53
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: No pasar ID despues de eliminado

hola amigos, bueno lo solucione con un get del id, les muestro!!!
Código PHP:
<?php require_once('../Connections/alba.php'); ?>
<?php
function GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
$extra $_GET['id'];

mysql_select_db($database_alba$alba);
$query_Recordset2 "SELECT * FROM galeria where id = $extra";
$Recordset2 mysql_query($query_Recordset2$alba) or die(mysql_error());
$row_Recordset2 mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 mysql_num_rows($Recordset2);

if ((isset(
$_GET['id'])) && ($_GET['id'] != "")) {
  
$deleteSQL sprintf("DELETE FROM galeria WHERE id=%s",
                       
GetSQLValueString($_GET['id'], "int"));

  
mysql_select_db($database_alba$alba);
  
$Result1 mysql_query($deleteSQL$alba) or die(mysql_error());

  
$deleteGoTo "http://www.indexa.com.ve/albarracin/admin/ing_img_prod.php?id=".$row_Recordset2['prod_id'];
/*  if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }*/
  
header(sprintf("Location: %s"$deleteGoTo));
}
?>
<?php
mysql_free_result
($Recordset2);
?>
funciona perfecto.... gracias a todos por su tiempo e interes en ayudarme :)
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
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 00:21.