Foros del Web » Programando para Internet » PHP »

variable indefinida

Estas en el tema de variable indefinida en el foro de PHP en Foros del Web. Hola, recurro a ustedes para que me ayuden a resolver algo que me esta retrasando varios dias y parese algo simple pero no logro ubicar ...
  #1 (permalink)  
Antiguo 22/12/2012, 23:28
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
variable indefinida

Hola, recurro a ustedes para que me ayuden a resolver algo que me esta retrasando varios dias y parese algo simple pero no logro ubicar el error en mi codigo.

Miren obtengo el siguiente mensaje

"Notice: Undefined index: en_venta in D:\wamp\www\HD\modificar-monitores.php on line 152 Call Stack #TimeMemoryFunctionLocation 10.0008733160{main}( )..\modificar-monitores.php:0 "/>"

Lo que entiendo es que la variable en_venta no esta definida.

pero en el codigo si lo esta o asi me parese.
Código PHP:
<?php
if(isset($_GET['id'])){
$id $_GET['id'];
// hacemos una consulta
// para mostrar los datos
$sql mysql_query("SELECT * FROM monitores WHERE codigo = $id"$link)
or die(
mysql_error());
$row mysql_fetch_array($sql);
// advertimos
$mensaje "Actualizar los datos del Resgistro <b>$row[nombre_modelo]</b>";
}
// comprobamos si
// ha sido enviado el formulario
if(isset($_POST['actualizar']) && $_POST['actualizar'] == 'Actualizar'){
// comprobamos que no lleguen campos vacios
if(!empty($_POST['nombre_modelo']) && !empty($_POST['precio'])){
// creamos las variables
// que vamos a usar en la consulta UPDATE
// y le asignamos sus valores
$codigo $_POST['codigo'];
$nombre_modelo $_POST['nombre_modelo'];
$precio $_POST['precio'];
$en_venta $_POST['en_venta'];
// la consulta UPDATE
$sqlUpdate mysql_query("UPDATE monitores SET 
nombre_modelo = \"$nombre_modelo\",
precio = \"$precio\",
en_venta= \"$en_venta\"
WHERE codigo = \"$codigo\""
$link)
or die(
mysql_error());
echo 
"Registro actualizado correctamente \"<a href=formulario-monitores.php>Regresar al inicio</a>\"";
}else{
echo 
"debe llenar todos los campos";
}
}else{
// mostramos el mensaje
echo "<p>".$mensaje."</p>";
?><?php echo $row['en_venta']; ?>
<!--
el formulario.
los values de los campos
son los valores que optenemos
de la consulta SELECT
-->
<form name="actualizar-registro" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
Nombre: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" size="50" name="nombre_modelo" value="<?php echo $row['nombre_modelo']; ?>"/><br />

Precio: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="precio" value="<?php echo $row['precio']; ?>"/><br />

En Venta: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="en_venta" value="<?php echo $row['en_venta']; ?>"/><br />
<input type="hidden" name="codigo" value="<?php echo $row['codigo']; ?>"/>
<input type="submit" name="actualizar" value="Actualizar" />
</form>
<?php ?>
Lo extraño esque si me funciona en otra pagina, de donde copie el codigo y modifique la tabla y los campos pero la variable en_venta no se porque demonios me aparese como no definida.

Tiene el nombre correcto pues ya lo revise en la tabla de la base de datos y hasta e copiedo el nombre y pegado para asegurarme que estea correcto pero aun me sale ese error.
miren esta imagen, que demuestra que los demas datos estan siendo jalados de la manera correcta.



Alguien me ayuda porfa a descubrir lo que esta fallado?

Última edición por XxSoulDarkxX; 22/12/2012 a las 23:34
  #2 (permalink)  
Antiguo 23/12/2012, 00:07
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: variable indefinida

La variable
Código PHP:
$en_venta 
La tiene definida tu programa; pero la define CON EL VALOR recibido en
Código PHP:
$_POST['en_venta']; 
el cual NO ESTA VALIDADO ni DEFINIDO para TODOS los casos.

Tienes que VALIDAR la existencia de
Código PHP:
$_POST['en_venta']; 
  #3 (permalink)  
Antiguo 23/12/2012, 00:25
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: variable indefinida

Cita:
Iniciado por Anarko Ver Mensaje
La variable
Código PHP:
$en_venta 
La tiene definida tu programa; pero la define CON EL VALOR recibido en
Código PHP:
$_POST['en_venta']; 
el cual NO ESTA VALIDADO ni DEFINIDO para TODOS los casos.

Tienes que VALIDAR la existencia de
Código PHP:
$_POST['en_venta']; 
Mi no entender.

Como lo soluciono?
ya que las demas variables estan definidas de la misma manera y no me dan ese problema.

No entiendo muy bien lo que intentas explicarme y mas aun como solucionarlo.
  #4 (permalink)  
Antiguo 23/12/2012, 00:40
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: variable indefinida

Cita:
Iniciado por XxSoulDarkxX Ver Mensaje
No entiendo muy bien lo que intentas explicarme y mas aun como solucionarlo.
Tu formulario NO ESTA ENVIANDO el valor
Código PHP:
$_POST['en_venta']; 
Los otros valores SI LOS SENVIA.
  #5 (permalink)  
Antiguo 23/12/2012, 00:52
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: variable indefinida

Cita:
Iniciado por Anarko Ver Mensaje
Tu formulario NO ESTA ENVIANDO el valor
Código PHP:
$_POST['en_venta']; 
Los otros valores SI LOS SENVIA.
Pero porque solo ese?
Y porque en otro formulario similar con el mismo codigo pero con otros datos y con la misma variable y mismo campo en la base de datos si me funciona.

Y que debo hacer o como lo soluciono?
  #6 (permalink)  
Antiguo 23/12/2012, 01:01
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: variable indefinida

Cita:
Iniciado por XxSoulDarkxX Ver Mensaje
Pero porque solo ese?
Por que así esta creado EL FORM.[/QUOTE]...porque en otro formulario similar...con otros datos... si me funciona...[/QUOTE]Leete!
  #7 (permalink)  
Antiguo 23/12/2012, 01:36
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: variable indefinida

Cita:
Iniciado por Anarko Ver Mensaje
Por que así esta creado EL FORM.
...porque en otro formulario similar...con otros datos... si me funciona...[/QUOTE]Leete![/QUOTE]

Código PHP:
<?php
if(isset($_GET['id'])){
$id $_GET['id'];
// hacemos una consulta
// para mostrar los datos
$sql mysql_query("SELECT * FROM notebooks WHERE codigo = $id"$link)
or die(
mysql_error());
$row mysql_fetch_array($sql);
// advertimos
$mensaje "Actualizar los datos del Resgistro <b>$row[nombre_modelo]</b>";
}
// comprobamos si
// ha sido enviado el formulario
if(isset($_POST['actualizar']) && $_POST['actualizar'] == 'Actualizar'){
// comprobamos que no lleguen campos vacios
if(!empty($_POST['nombre_modelo']) && !empty($_POST['memoria_instalada']) && !empty($_POST['precio'])){
// creamos las variables
// que vamos a usar en la consulta UPDATE
// y le asignamos sus valores
$codigo $_POST['codigo'];
$nombre_modelo $_POST['nombre_modelo'];
$memoria_instalada $_POST['memoria_instalada'];
$precio $_POST['precio'];
$en_venta $_POST['en_venta'];
// la consulta UPDATE
$sqlUpdate mysql_query("UPDATE notebooks SET 
nombre_modelo = \"$nombre_modelo\",
memoria_instalada = \"$memoria_instalada\",
precio = \"$precio\",
en_venta= \"$en_venta\"
WHERE codigo = \"$codigo\""
$link)
or die(
mysql_error());
echo 
"Registro actualizado correctamente \"<a href=formulario-notebooks.php>Regresar al inicio</a>\"";
}else{
echo 
"debe llenar todos los campos";
}
}else{
// mostramos el mensaje
echo "<p>".$mensaje."</p>";
?>
<!--
el formulario.
los values de los campos
son los valores que optenemos
de la consulta SELECT
-->
<form name="actualizar-registro" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
Nombre: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" size="50" name="nombre_modelo" value="<?php echo $row['nombre_modelo']; ?>"/><br />

Memoria Instalada: &nbsp;&nbsp;<input type="text" name="memoria_instalada" value="<?php echo $row['memoria_instalada']; ?>"/><br />

Precio: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="precio" value="<?php echo $row['precio']; ?>"/><br />

En Venta: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="en_venta" value="<?php echo $row['en_venta']; ?>"/><br />
<input type="hidden" name="codigo" value="<?php echo $row['codigo']; ?>"/>
<input type="submit" name="actualizar" value="Actualizar" />
</form>
<?php ?>
Este es el otro formulario y si me funciona correctamente, tien el mismo codigo solo que tiene otro campo pero de todas maneras es identico al otro y este si funciona y los registros si estan llenos y son los mismo por si a eso te refieres.

Última edición por XxSoulDarkxX; 23/12/2012 a las 01:43
  #8 (permalink)  
Antiguo 23/12/2012, 01:44
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: variable indefinida

Ambos apuntan AL MISMO script.php destino?
O apuntan a DOS files DIFERENTES ?
  #9 (permalink)  
Antiguo 23/12/2012, 02:01
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: variable indefinida

Cita:
Iniciado por Anarko Ver Mensaje
Ambos apuntan AL MISMO script.php destino?
O apuntan a DOS files DIFERENTES ?
Ambos vienen desde otro formulario diferente para cada uno, y en esa misma pagina se actualiza y deberia mostrar el siguiente mensaje Registro actualizado correctamente si a eso te refieres.

el registro que si funciona lo llame, modificarconfirmar.php el que no me funciona es modificar-monitores.php y se actualizan los datos en cada uno de ellos sin crear otra pagina o mandar a otra pagina.

Última edición por XxSoulDarkxX; 23/12/2012 a las 02:08
  #10 (permalink)  
Antiguo 23/12/2012, 07:59
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: variable indefinida

Cita:
Iniciado por XxSoulDarkxX Ver Mensaje
vienen desde otro formulario diferente para cada uno
Cuál es el nombre de ESOS FORM?

Cita:
Iniciado por XxSoulDarkxX Ver Mensaje
el registro que si funciona lo llame, modificarconfirmar.php el que no me funciona es modificar-monitores.php
Cada uno apunta A SI MISMO ?
  #11 (permalink)  
Antiguo 23/12/2012, 10:00
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: variable indefinida

Cita:
Iniciado por Anarko Ver Mensaje
Cuál es el nombre de ESOS FORM?



Cada uno apunta A SI MISMO ?
Bueno, la cosa es asi,

Hay un formulario llamado Formulario.php este es el primero que cree para ingresar registros de notebooks, eliminarlos y actualizarlos, este me elimina correctamente, me registra, mi modifica algunos datos, de este se puede decir que saque una copia para otro fomularios y modifique las consultas y los campos de la base de datos. todo funciona exepto modificar por ese error de variable no definida.

Bueno, para que lo veas mejor te subo las imágenes de la sección de paginas que si funcionan.

Este Formulario.php





modificarconfirmar.php





modificarconfirmar.php


Ese es el que si funciona, el otro de monitores no me funciona pero tiene le mismo código y funciona de la misma manera.

Última edición por XxSoulDarkxX; 23/12/2012 a las 10:23
  #12 (permalink)  
Antiguo 23/12/2012, 23:08
 
Fecha de Ingreso: agosto-2012
Ubicación: Lima, Peru
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: variable indefinida

Nadie me puedo ayudar a detectar el problema?

Etiquetas: formulario, mysql, sql, tabla, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:03.