Hola compañeros, tengo un problemilla a ver si me pódeis hechar una mano. Tengo una página php que contiene un select, permitiéndome seleccionar entre varios tipos de comida, si cargo, por ejemplo, Aperitivos se me despliega una tabla con los aperitivos contenidos en la base de datos y 3 opciones, Nuevo, Modificar y Eliminar, para gestionar los platos. Cuando quiero hacer una de estas acciones me redirecciona a otra página donde gestiono las opciones. El problema está que cuando Elimino una vez me sale bien, pero al intentar eliminar la segunda vez me da un error. Yo creo, desde mi ignorancia, que al redireccionar a la página de procesado y como desde ésta luego vuelve a la anterior, y al volver a hacer un select me vuelve a redireccionar sobre la misma página, de hecho me sale en el navegador: admin.php/admin.php.
Código de admin.php:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>admin_res.htm</title>
</head>
<body bgcolor="#EFEFDE">
<h1><div align="center"><font face="Monotype Corsiva" style="font-size: 25pt; text-decoration:underline" color="#008000">ADMINISTRACIÓN DE RESERVAS</font></div></h1>
<p style="margin-bottom: -20px" align="center"> <b> </b></p>
<p><font color="#426D18"><b><font size="4">   ; Seleccione
el tipo de comida.</font></b></font></p>
<font color="#426D18"><b> & nbsp; &nb sp;
<form action="admin_res.php" method="post">
Tipo de comida <select name='tipo'>
<option>Aperitivos</option>
<option>Entrantes</option>
<option>Pescados</option>
<option>Carnes</option>
<option>Postres</option>
<option>Vino Tinto</option>
<option>Vino Rosado</option>
<option>Vino Blanco</option>
</select></b></font>
<input type="submit" value="Consultar"></form>
<?php
print_r($_POST);
//Conexion con la base
$conec=mysql_connect("localhost","root");
if(!$conec)
{
die('No se pudo conectar:'.mysql_error());
}
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("restaurante", $conec);
if (isset($_POST['tipo']) || isset($_SESSION['carta']))
{
if (isset($_POST['tipo'])) $_SESSION['carta']=$_POST['tipo'];
$aux=$_SESSION['carta'];
$res=mysql_query("SELECT*FROM artículos WHERE Tipo = '$aux'");
$cont=0;
// Se inicia el formulario
echo "<form action='procesar1.php' method='post'>";
if ($row= mysql_fetch_array($res)){
// Se inicia el formulario
echo "<input type='hidden' name='oculto' value='$aux'>";
echo "<input type='submit' name='nuevo' value='Nuevo'>";
echo "<input type='submit' name='modificar' value='Modificar'>";
echo "<input type='submit' name='eliminar' value='Eliminar'>";
echo "<br>";
echo "<br>";
echo "<table align='center' border='1'>";
echo "<tr><th></th><th width='75%'><font color='#426D18' style='font-size: 18pt; face='Times New Roman'>Artículo</font></th>";
echo "<th width='25%'><font color='#426D18' style='font-size: 18pt; face='Times New Roman'>Precio</font></th></tr>";
//Mostramos los registros
while ($row=mysql_fetch_array($res))
{
echo "<tr height='30'><td><input name=\"seleccion[]\" type='checkbox' value=".$row["Número"]."></td>";
echo "<td><font color='#008000' style='font-size: 15pt; face='Times New Roman'>".$row["Artículo"]."</td>";
echo "<td><font color='#426D18' style='font-size: 15pt; face='Times New Roman'>".$row["Precio"]."</td></tr>";
$cont=$cont+1;
}
echo "</table>";
echo "<br>";
echo "<input type='submit' name='nuevo' value='Nuevo'>";
echo "<input type='submit' name='modificar' value='Modificar'>";
echo "<input type='submit' name='eliminar' value='Eliminar'>";
echo "<br>";
echo "<br>";
echo "El número de artículos es: ".$cont."<br>";
echo "</form>";
}
else{
echo ("<font color='#426D18' style='font-size: 20pt; face='Times New Roman'>¡No se ha encontrado ningun registro!</font>");
echo "<br>";
echo "<br>";
echo "<input type='submit' name='nuevo' value='Nuevo'>";
echo "</form>";
mysql_free_result($res);
}
}
else
{
echo ("<font color='#426D18' style='font-size: 20pt; face='Times New Roman'>¡No se ha encontrado ningun registro!</font>");
echo "<br>";
echo "<br>";
echo "<input type='submit' name='nuevo' value='Nuevo'>";
echo "</form>";
}
?>
</body>
</html>
Código de procesar.php:
<?php
session_start();
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
</head>
<body>
<?php
$conec=mysql_connect("localhost","root");
if(!$conec)
{
die('No se pudo conectar:'.mysql_error());
}
mysql_select_db("restaurante", $conec);
if(isset($_POST['nuevo'])){
print_r($_POST);
echo "<form action='nuevo_registro.php' method='post'>";
echo "<input type='hidden' name='oculto1' value='$_POST[oculto]'>";
echo "</form>";
echo '<meta http-equiv="refresh" content="5; URL=no pongo la url pq no me deja>';
}
if (isset($_POST['seleccion'])) {
if (isset($_POST['eliminar'])){
$Lista=implode(',',$_POST['seleccion']);
mysql_query("DELETE FROM artículos where Número IN(".$Lista.")");
echo "Se elimino el registro de la bd";
echo '<meta http-equiv="refresh" content="5; URL=no pongo la url pq no me deja>';
}
else{
if(isset($_POST['modificar'])){
echo "<form action='modificar_reg.php' method='post'>";
$Lista=implode(',',$_POST['seleccion']);
echo "</form>";
print_r($_POST);
echo '<meta http-equiv="refresh" content="5; URL=no pongo la url pq no me deja>';
}
}
}
else{
echo "Debe elegir al menos un artículo.";
}
?>
</body>
</html>
También me gustaría que una vez que hago alguna gestión me volviese a admin.php y me saliese la página tal cual la dejé anteriormente pero, por ejemplo, si borrase sin ese registro, pero tengo que volver a seleccionar ese tipo de comida en el select para mostrar el resultado.
No se si me he explicado bien. Gracias.