problemilla con $_GET [solucionado]

Iniciado por soru13, 3 Marzo 2011, 20:37 PM

0 Miembros y 1 Visitante están viendo este tema.

soru13

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
Código (php) [Seleccionar]
<!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>&nbsp;</p>
   </form></td>
 </tr>
</table>
</body>
</html>


1.php
Código (php) [Seleccionar]
<?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

Código (php) [Seleccionar]
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

Código (html4strict) [Seleccionar]
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!

.mokk.

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

soru13

si hago lo que me dices no devuelve las variables atraves de la url,queda esto:
Código (php) [Seleccionar]

http://localhost/editar/1.php?id=2


y el mismo error:

Código (php) [Seleccionar]
Notice: Undefined index: id in C:\xampp\htdocs\editar\1.php on line 2

Shell Root

Entonces cambiale el $_REQUEST por el $_GET
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

soru13

le puse GET al formulario y estamos en las mismas que en el primer mensaje:

Código (php) [Seleccionar]

Notice: Undefined index: id in C:\xampp\htdocs\editar\1.php on line 2


y falta el ?id= en la url que me devuelve

Código (php) [Seleccionar]
http://localhost/editar/1.php?nombre=10+Minutes+aaaa&embed=embed&imagen=http%3A%2F%2F...

Feedeex

#5
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>&nbsp;</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

Shell Root

@Feedeex, o son todos $_GET o son todos $_POST. Pero las 2 a la misma vez no.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Feedeex

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.


Feedeex

Me alegro que te haya servido ;-)