Tengo un formulario (delete_img.php) que lleva información a process_delete.php para eliminar una entrada a la base de datos. Funciona, perfectamente. El chiste es que después de que se hace el proceso muestro el resultado en la misma página del formulario. Para hacerlo más gráficamente, tengo el siguiente código:
Código PHP:
<?php
include ("includes/connect.php");
$img = $_GET[img];
$sql_select = "SELECT * FROM images WHERE img = '$img'";
$sql_query = mysql_query($sql_select, $sql_connect);
$sql_result = mysql_num_rows($sql_query);
if ($sql_result === 0)
{
$exists = FALSE;
header ("Location: delete_img.php?exists=$exists");
}
else
{
$sql_delete = "DELETE FROM images WHERE img = '$img'";
$sql_query = mysql_query($sql_delete, $sql_connect);
if ($sql_query === FALSE)
{
$success = FALSE;
header ("Location: delete_img.php?success=$success");
}
else
{
$success = TRUE;
header ("Location: delete_img.php?success=$success");
}
}
?>
Código PHP:
<?php
if (isset($_GET[success]) and $_GET[success] === TRUE)
{
$deleted = TRUE;
$deletedMsg = "<p class=\"center\">Imágen eliminada satisfactoriamente.</p>";
}
if (isset($_GET[success]) and $_GET[success] === FALSE)
{
$deleted = FALSE;
$errorMsg = "<p class=\"center\">No se pudo eliminar la imágen.</p>";
}
if (isset($_GET[exists]) and $_GET[exists] === FALSE)
{
$deleted = FALSE;
$errorMsg = "<p class=\"center\">La imágen no existe.</p>";
}
var_dump($_GET[success]);
var_dump($_GET[exists]);
// ...y aquí abajo tooooodo el código...
?>
Haciendo var_dump()'s, me muestra que el resultado de $succes es int(0). Cuando pasa a delete_img.php Pasa como string. Si lo convierto a booleano, pasa como false pero en ?exists no sale ningun resultado. Lo peor de todo es que solo pasa en con el if $sql_result... mas no en ningun otro lugar. Si no lo convierto, me sale como String pero sin valor. Si pongo un string de verdad, sale el string y todo funciona correctamente, y si lo pongo como entero (sin definir que es booleano) y pongo 0, no pasa nada, y aparece como string!
NO ENTIENDO!