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 29/12/2012, 15:26
 
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 ?>
y me bota este error




Pero lo mas raro en el siguiente codigo de otra pagina de donde saque el modelo y modifique algunas cosas como la tabla y los campos si me reconoce la variable en_venta

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 ?>
En esta imagen se ve que si me reconose la variable.


Los datos, que van en la variable en_venta y en el campo en_venta de las tablas son los mismos, "si" y "no" y aun asi me sigue botando ese error.
  #2 (permalink)  
Antiguo 29/12/2012, 16:37
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Variable indefinida

Lo que no tienes definidio es 'en_venta'

no la variable si no el valor de un array con ese index

probablemente este:

$_POST['en_venta'];

¿estás enviando dicho valor en el form?
  #3 (permalink)  
Antiguo 29/12/2012, 17:06
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Variable indefinida

Revisa que en la tabla monitores que tengas un campo llamado en_venta. No es lo mismo la tabla notebooks, a la tabla monitores.

Anuncio: Extensión MySQL ha sido deprecada

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 29/12/2012, 17:22
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Variable indefinida

¿Deprecada?

creo que la palabra correcta para traducir deprecated es obsoleto

deprecado significa otra cosa.

pero si, mysql es obsoleto, hay que usar PDO o en su defecto mysqli
  #5 (permalink)  
Antiguo 29/12/2012, 17:54
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Variable indefinida

Remplaza esto:

Código PHP:
Ver original
  1. $en_venta = $_POST['en_venta'];
por:

Código PHP:
Ver original
  1. $en_venta = isset($_POST['en_venta'])?$_POST['en_venta']:"Huy flashe, y no esta este campo el form, o se llama distinto";
  2. die($en_venta);
Y contanos que dice :D
__________________
Mono programando!
twitter.com/eguimariano
  #6 (permalink)  
Antiguo 29/12/2012, 19:32
 
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 SirDuque Ver Mensaje
Remplaza esto:

Código PHP:
Ver original
  1. $en_venta = $_POST['en_venta'];
por:

Código PHP:
Ver original
  1. $en_venta = isset($_POST['en_venta'])?$_POST['en_venta']:"Huy flashe, y no esta este campo el form, o se llama distinto";
  2. die($en_venta);
Y contanos que dice :D
Ya reemplace lo que me indicaste y me sigue botando el mismo mensaje.
Comento que es el mismo codigo para ambos, solo que es con otra tabla, en la misma base de datos y con un par de campos diferentes y aun asi siendo el mismo codigo solo una pagina me bota ese mensaje.

Probe con el mismo codigo que me brindaste con otra variable llamada precio y si me funciona.

Última edición por XxSoulDarkxX; 29/12/2012 a las 19:44

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 03:24.