PHP - !!!Estoy DesesperadooooO!!!! Eliminacion fallida

 
Vista:

!!!Estoy DesesperadooooO!!!! Eliminacion fallida

Publicado por Ricardo Ríos (23 intervenciones) el 10/11/2006 13:21:15
Buenos Dias

Gracias por leer mi nota en el foro.

Llevo 3 dias tratando de que la eliminacion de datos en una tabla funcione pero no lo he podido lograr de verdad que me encuentro ya un poco frustrado y desesperado quien me pueda ayudar se agradece mucho.

Me guie del manual que se puede encontar en: http://www.desarrolloweb.com/articulos/326.php

Estos son los errores que me da al ejecutarse el borrar2.php

Estos son los dos archivos que tengo para borrar y este es el script:

Borrar1.php

<HTML>
<HEAD>
<TITLE>Eliminacion</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Borrar un registro</h1>
<br>
<?
mysql_connect("localhost","neo","matrix");
mysql_select_db("america");
echo '<FORM METHOD="POST" ACTION="borrar2.php">Cedula<br>';
$sSQL="Select ci From datos_personales Order By ci";
$result=mysql_query($sSQL);
echo '<select name="cedula">';
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["ci"];}
mysql_free_result($result)
?>
</select>
<br>
<INPUT TYPE="SUBMIT" value="Borrar">
</FORM>
</div>
</BODY>
</HTML>

Borrar2.php

<HTML>
<HEAD>
<TITLE>Eliminacion</TITLE>
</HEAD>
<BODY>
<?
mysql_connect("localhost","neo","matrix");
mysql_select_db("america");
$sSQL="Delete * From datos_personales Where ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete * From estudios_realizados Where ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete * From bauche Where ci=ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete * From experiencia_1 Where ci=ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete * From experiencia_2 Where ci=ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete * From experiencia_3 Where ci=ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete * From experiencia_evento_1 Where ci=ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete * From experiencia_evento_2 Where ci=ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete * From experiencia_evento_3 Where ci=ci='$cedula'";
$res=mysql_query($sSQL);
?>
<h1><div align="center">Registro Borrado</div></h1>
<div align="center"><a href="consulta2.php">Visualizar el contenido de la base de datos</a></div>
</BODY>
</HTML>


Notice: Undefined variable: cedula in c:\archivos de programa\easyphp1-8\www\america\borrar2.php on line 9

Notice: Undefined variable: cedula in c:\archivos de programa\easyphp1-8\www\america\borrar2.php on line 11

Notice: Undefined variable: cedula in c:\archivos de programa\easyphp1-8\www\america\borrar2.php on line 13

Notice: Undefined variable: cedula in c:\archivos de programa\easyphp1-8\www\america\borrar2.php on line 15

Notice: Undefined variable: cedula in c:\archivos de programa\easyphp1-8\www\america\borrar2.php on line 17

Notice: Undefined variable: cedula in c:\archivos de programa\easyphp1-8\www\america\borrar2.php on line 19

Notice: Undefined variable: cedula in c:\archivos de programa\easyphp1-8\www\america\borrar2.php on line 21

Notice: Undefined variable: cedula in c:\archivos de programa\easyphp1-8\www\america\borrar2.php on line 23

Notice: Undefined variable: cedula in c:\archivos de programa\easyphp1-8\www\america\borrar2.php on line 25

Gracias de antemano, saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:!!!Estoy DesesperadooooO!!!! Eliminacion fallid

Publicado por maxter (205 intervenciones) el 10/11/2006 13:40:12
Bueno el primer error que tienes es este

echo '<option>'.$row["ci"];

deberías ponerlo así

echo '<option value='.$row["ci"].'>'.$row["ci"].'</option>';

Lo otro es que en Borrar2.php no capturas bien los valores de $ci [salvo que tengas register_globals = on, cosa que compromete bastante tu sistema y a jusgar por lo que dice PHP es totalmente falso] independientemente de que no se lo pasaras ya que en el <option> del script anterior no le imprimías el respectivo valor al mismo. Por lo que deberías hacer esto al principio

$cedula = $_POST['$cedula'];

Otra cosa las consultas está mal, la forma de deberías hacer el delete es así

$sSQL="Delete From datos_personales Where ci='$cedula'";

Bueno suerte y cualquier cosa postea que aquí estamos [cuando podemos ;-)]

Saludos,
Yoandy
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:!!!Estoy DesesperadooooO!!!! Eliminacion fallid

Publicado por Ricardo Ríos (23 intervenciones) el 10/11/2006 13:53:29
Buenos dias de nuevo

Muchas gracias Yoandy, de verdad que me resolviste bastantes dudas pero aun tengo un pequeño problemita con borrar2.php al parecer no esta capturando bien la variable cedula desde el borrar1.php porque al escoger la cedula que desor borrar y darle al boton, me aparece lo siguiente:

Notice: Undefined index: $cedula in c:\archivos de programa\easyphp1-8\www\america\borrar2.php on line 9

Parece que el problema esta en la línea:

<HTML>
<HEAD>
<TITLE>Eliminacion</TITLE>
</HEAD>
<BODY>
<?
mysql_connect("localhost","neo","matrix");
mysql_select_db("america");
$cedula = $_POST['$cedula']; // <--- Aca parece estar el problema???
$sSQL="Delete From datos_personales Where ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete From estudios_realizados Where ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete From bauche Where ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete From experiencia_1 Where ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete From experiencia_2 Where ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete From experiencia_3 Where ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete From experiencia_evento_1 Where ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete From experiencia_evento_2 Where ci='$cedula'";
$res=mysql_query($sSQL);
$sSQL="Delete From experiencia_evento_3 Where ci='$cedula'";
$res=mysql_query($sSQL);
?>
<h1><div align="center">Registro Borrado</div></h1>
<div align="center"><a href="consulta2.php">Visualizar el contenido de la base de datos</a></div>
</BODY>
</HTML>

Por cierto acabo revisar todos mis php.ini y tienen register_globals = Off asi que no es ese el problema (bueno eso creo)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:!!!Estoy DesesperadooooO!!!! Eliminacion fallid

Publicado por Ricardo Ríos (23 intervenciones) el 10/11/2006 17:28:50
Ya resolvi el problema solo que debo darle 2 veces a borrar una misma cedula para poderla eliminar, no se que es lo que pasara, aca dejo el codigo fuente

borrar1.php

<HTML>
<HEAD>
<TITLE>Eliminacion</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Borrar un registro</h1>
<br>
<?
mysql_connect("localhost","neo","matrix");
mysql_select_db("america");
echo '<FORM METHOD="POST" ACTION="borrar2.php">Cedula<br>';
$sSQL="Select ci From datos_personales Order By ci";
$result=mysql_query($sSQL);
echo '<select name="cedula">';
if ($result == true)
{
while ($row=mysql_fetch_array($result))
{
echo '<option value='.$row["ci"].'>'.$row["ci"].'</option>';
}
mysql_free_result($result);
}
else
{
printf ("No existen registros de cedulas\n");
}
?>
</select>
<br>
<INPUT TYPE="SUBMIT" value="Borrar">
</FORM>
</div>
</BODY>
</HTML>

borrar2.php

<HTML>
<HEAD>
<TITLE>Eliminacion</TITLE>
</HEAD>
<BODY>
<?
mysql_connect("localhost","neo","matrix");
mysql_select_db("america");
$cedula=$_POST['cedula'];
$sSQL="Delete From datos_personales Where ci=".$cedula."";
$res=mysql_query($sSQL);
$sSQL="Delete From estudios_realizados Where ci=".$cedula."";
$res=mysql_query($sSQL);
$sSQL="Delete From bauche Where ci=".$cedula."";
$res=mysql_query($sSQL);
$sSQL="Delete From experiencia_1 Where ci=".$cedula."";
$res=mysql_query($sSQL);
$sSQL="Delete From experiencia_2 Where ci=".$cedula."";
$res=mysql_query($sSQL);
$sSQL="Delete From experiencia_3 Where ci=".$cedula."";
$res=mysql_query($sSQL);
$sSQL="Delete From experiencia_evento_1 Where ci=".$cedula."";
$res=mysql_query($sSQL);
$sSQL="Delete From experiencia_evento_2 Where ci=".$cedula."";
$res=mysql_query($sSQL);
$sSQL="Delete From experiencia_evento_3 Where ci=".$cedula."";
$res=mysql_query($sSQL);
?>
<h1><div align="center">Registro Borrado</div></h1>
<div align="center"><a href="consulta2.php">Visualizar el contenido de la base de datos</a></div>
</BODY>
</HTML>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar