hola,tengo el siguiente código ya que estoy intentando editar los registros de mi base de datos pero no lo consigo:
editar_pelicula.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<style type="text/css">
<!--
body {
background-color: #9FE0FF;
}
-->
</style></head>
<body><?
include("config.php");
$id=$_GET['id'];
$link=Conectarse();
$result=mysql_query("select * from pelis WHERE id=$id",$link);
while($row = mysql_fetch_array($result)) {
$id2 = $row["id"];
$nombre = $row["nombre"];
$embed = $row["embed"];
$imagen = $row["imagen"];
$duracion = $row["duracion"];
$descripcion = $row["descripcion"];
$descarga = $row["descarga"];
}
mysql_free_result($result);
mysql_close($link);
?>
<table width="40%" border="0" align="center">
<tr>
<td align="center"><p><b>Editar película</b><br></td>
</tr>
<tr>
<td align="center"><form id="form1" name="form1" method="request" action="1.php?id=<? echo $id2; ?>">
<p>
<label>
Nombre:
<input name="nombre" type="text" id="textfield" value="<? echo $nombre; ?>" size="50" />
</label>
</p>
<p>Embed: <br>
<textarea name="embed" cols="40" rows="8" id="textfield2"><? echo $embed; ?></textarea>
</p>
<p>Imagen:
<input name="imagen" type="text" id="textfield3" size="50" value="<? echo $imagen; ?>" />
</p>
<p>Duración:
<input name="duracion" type="text" id="textfield4" size="50" value="<? echo $duracion; ?>" />
</p>
<p>Descripción:<br>
<textarea name="descripcion" cols="40" rows="8" id="textfield5"><? echo $descripcion; ?></textarea>
</p>
<p>Descarga:<br>
<label>
<textarea name="descarga" cols="40" rows="8" id="textfield6"><? echo $descarga; ?></textarea>
</label>
</p>
<p>
<label>
<input type="submit" name="button" id="button" value="Editar" />
</label>
</p>
<p> </p>
</form></td>
</tr>
</table>
</body>
</html>
1.php
<?php
$id = $_GET["id"];
$nombre = $_REQUEST["nombre"];
$embed = $_REQUEST["embed"];
$imagen = $_REQUEST["imagen"];
$duracion = $_REQUEST["duracion"];
$descripcion = $_REQUEST["descripcion"];
$descarga = $_REQUEST["descarga"];
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("pruebas", $con);
mysql_query("UPDATE pelis SET nombre = '$nombre', embed = '$embed', imagen = '$imagen', duracion = '$duracion', descripcion = '$descripcion', descarga = '$descarga' WHERE id = '$id'");
mysql_close($con);
?>
el caso es que me da error cuando me lleva a 1.php
Notice: Undefined index: id in C:\xampp\htdocs\editar_spraycine\1.php on line 2
como bien dice la direccion me devuelve todos los parametros menos el id y sin esta no sabe que registro editar
http://localhost/editar/1.php?nombre=10+Minutes+aaaa&embed=embed&imagen=http%3A%2F%2Fwww.web.com%2Fimages%2F10min.jpg&duracion=68+minutos&descripcion=desc&button=Editar
el caso es que he revisado el código y no se porque no aparece,aver si me podeis ayudar, gracias de antemano.
Un saludo!
Donde esta lo de form, mira esto
method="request" , no deberia ser method="POST" ?
y ya en el 1.php en el id seria
POST y no GET
si hago lo que me dices no devuelve las variables atraves de la url,queda esto:
http://localhost/editar/1.php?id=2
y el mismo error:
Notice: Undefined index: id in C:\xampp\htdocs\editar\1.php on line 2
Entonces cambiale el $_REQUEST por el $_GET
le puse GET al formulario y estamos en las mismas que en el primer mensaje:
Notice: Undefined index: id in C:\xampp\htdocs\editar\1.php on line 2
y falta el ?id= en la url que me devuelve
http://localhost/editar/1.php?nombre=10+Minutes+aaaa&embed=embed&imagen=http%3A%2F%2F...
Proba asi:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<style type="text/css">
<!--
body {
background-color: #9FE0FF;
}
-->
</style></head>
<body><?
include("config.php");
$id=$_GET['id'];
$link=Conectarse();
$result=mysql_query("select * from pelis WHERE id=$id",$link);
while($row = mysql_fetch_array($result)) {
$id2 = $row["id"];
$nombre = $row["nombre"];
$embed = $row["embed"];
$imagen = $row["imagen"];
$duracion = $row["duracion"];
$descripcion = $row["descripcion"];
$descarga = $row["descarga"];
}
mysql_free_result($result);
mysql_close($link);
?>
<table width="40%" border="0" align="center">
<tr>
<td align="center"><p><b>Editar película</b><br></td>
</tr>
<tr>
<td align="center"><form id="form1" name="form1" method="POST" action="1.php?id=<? echo $id2; ?>">
<p>
<label>
Nombre:
<input name="nombre" type="text" id="textfield" value="<? echo $nombre; ?>" size="50" />
</label>
</p>
<p>Embed: <br>
<textarea name="embed" cols="40" rows="8" id="textfield2"><? echo $embed; ?></textarea>
</p>
<p>Imagen:
<input name="imagen" type="text" id="textfield3" size="50" value="<? echo $imagen; ?>" />
</p>
<p>Duración:
<input name="duracion" type="text" id="textfield4" size="50" value="<? echo $duracion; ?>" />
</p>
<p>Descripción:<br>
<textarea name="descripcion" cols="40" rows="8" id="textfield5"><? echo $descripcion; ?></textarea>
</p>
<p>Descarga:<br>
<label>
<textarea name="descarga" cols="40" rows="8" id="textfield6"><? echo $descarga; ?></textarea>
</label>
</p>
<p>
<label>
<input type="submit" name="button" id="button" value="Editar" />
</label>
</p>
<p> </p>
</form></td>
</tr>
</table>
</body>
</html>
<?php
$id = $_GET['id'];
$nombre = $_POST["nombre"];
$embed = $_POST["embed"];
$imagen = $_POST["imagen"];
$duracion = $_POST["duracion"];
$descripcion = $_POST["descripcion"];
$descarga = $_POST["descarga"];
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("pruebas", $con);
mysql_query("UPDATE pelis SET nombre = '$nombre', embed = '$embed', imagen = '$imagen', duracion = '$duracion', descripcion = '$descripcion', descarga = '$descarga' WHERE id = '$id'");
mysql_close($con);
?>
Por cierto, ingresa a la primer página como http://url.com/editar_pelicula.php?id=ALGUN_NUMERO
@Feedeex, o son todos $_GET o son todos $_POST. Pero las 2 a la misma vez no.
Cita de: Shell Root en 3 Marzo 2011, 23:57 PM
@Feedeex, o son todos $_GET o son todos $_POST. Pero las 2 a la misma vez no.
No entendí, pero hasta donde yo se el código que le di funciona porque el único que usa para $_GET es obtener una id, pero el formulario está en $_POST. Yo lo uso así y me funciona, solo paso el id por $_GET.
ok,ya funciona, gracias por la ayuda!
Me alegro que te haya servido ;-)
Cita de: Shell Root en 3 Marzo 2011, 23:57 PM
@Feedeex, o son todos $_GET o son todos $_POST. Pero las 2 a la misma vez no.
No si esta bien porque si revisas el id es lo unico que envia y los demas los haria del tipo POST y ya solamente enviaria 1.php?id=<?=$id?>, mientras que los demas los colocaria en tipo POST, asi que si efectivamente funcionaria de tal forma.