[ Foro de PHP ]

ejercicio propuesto 10.3.3

05-Oct-2015 13:11
Invitado (Carlos L)
1 Respuestas

Por que no me funciona este código? Le he dado muchas vueltas y parece que todo está bien...Aclaremenlo,por favos.Gracias.


<html>
<body>
<?php
if ( ! isset($_POST["nombreant"]) &&  ! isset($_POST["nombre"]))
{
?>
<h1>Modificación de libro:</h1>
  <form action="ep1033.php" method="post">
    Título: <input name="nombreant" type="text"> <br> <br>
    <input name="buscar" value="Buscar" type="submit"><br>
	</form>
<?php
}
else{
if ( ! isset($_POST["nombre"]) )
{
 $a=0;
 $n = $_POST["nombreant"];
 if (!($enlace=mysql_connect("localhost","usuario","147"))) { 
    echo "Error conectando a la base de datos."; 
    exit(); 
} 
 
if (!mysql_select_db("biblioteca",$enlace)) { 
    echo "Error seleccionando la base de datos."; 
    exit(); 
} 
	$resultado=mysql_query("SELECT * FROM libros",$enlace);
while($dato = mysql_fetch_array($resultado))   {
    if ($n==$dato["Titulo"])
	{
		$a=2;
        $au=$dato["Autor"];
        $c=$dato["Codigo"];
        $d=$dato["Descripcion"];
	}		
}
mysql_free_result($resultado); 
mysql_close($enlace); 
if ($a==0)
{
	echo "<font color=#FF0000>Libro no encontrado.</font><br>";
	exit ();
}
$conn=mysql_connect("localhost","usuario","147");
if (!mysql_select_db("biblioteca",$conn)) { 
    echo "Error seleccionando la base de datos."; 
    exit(); 
} 
$sql = "UPDATE libros SET Autor='0' WHERE Titulo='$n'";
mysql_close($conn);
echo "<h1>Datos de libro antiguo:</h1><br>";
echo "Autor : ",$au,"<br>";
echo "Título : ",$n,"<br>";
echo "Código : ",$c,"<br>";
echo "Descripción : ",$d,"<br>";
?>
<h1>Introducción de los nuevos datos del libro:</h1>
  <form action="ep1033.php" method="post">
    Autor: <input name="nombre" type="text"> <br> <br>
	Título: <input name="nombreant" type="text"> <br> <br>
    Código: <input name="telefono" type="text"> <br> <br>
    Descripción: <input name="fechanac" type="text"> <br> <br>
    <input name="modificar" value="Modificar" type="submit"><br>
	</form>
	<?php
}
else{
$au = $_POST["nombre"];
	$n = $_POST["nombreant"];
$c = $_POST["telefono"];
$d = $_POST["fechanac"]; 
	
$conn=mysql_connect("localhost","usuario","147");
if (!mysql_select_db("biblioteca",$conn)) { 
    echo "Error seleccionando la base de datos."; 
    exit(); 
} 
$sql = "UPDATE libros SET Autor='$au',Titulo='$n',Codigo='$c',Descripcion='$d' WHERE Titulo='0'";
mysql_close($conn);
	echo "<font color=#6600FF>Libro modificado correctamente.</font><br>";	
}
}
?>
</body>
</html>


 


09-Oct-2015 12:05
Nacho Cabanes (+84)

¿Qué quiere decir "no funciona"?  ¿Qué mensaje de error o qué comportamiento incorrecto obtienes?

Te en cuenta que, en general, otro usuario no podrá replicarlo en su equipo porque no tendrá tu base de datos para hacer pruebas.

Si lo que ocurre es que no te funciona la orden UPDATE, puedes hacer un "echo" de la orden para comprobar si parece correcta, e incluso probar a "copiar y pegar" entonces sobre PhpMyAdmin para ver si obtienes algún mensaje de error.

En un primer vistazo, yo veo lo que parece un error de lógica: a pesar de ser un UPDATE, siempre modificas el libro cuyo título es "0".






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)