Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con variable externa

Estas en el tema de Problema con variable externa en el foro de PHP en Foros del Web. Hola, tengo un código dividido en 3 archivos, los cuales trabajan con una de las tablas de la BD y una variable: buscar.php resultado.php actualizar.php ...
  #1 (permalink)  
Antiguo 20/04/2016, 18:28
 
Fecha de Ingreso: febrero-2016
Mensajes: 48
Antigüedad: 8 años, 2 meses
Puntos: 0
Problema con variable externa

Hola, tengo un código dividido en 3 archivos, los cuales trabajan con una de las tablas de la BD y una variable:

buscar.php
resultado.php
actualizar.php

tablaA
campo_id
campo1
campo2
campo3
campo4

variable: $var

En el archivo "buscar.php", ingreso el un número que sera buscado en la tablaA, por su id(campo_id), y será guardado en la variable $var, con el que se imprimiran los campos que coincidan con su id, en el archivo "resultado.php".

Código PHP:
$resultado mysql_query("SELECT * FROM tablaA WHERE campo_id=$var",$con); 
y luego desde "resultado.php", elijo entre 2 radio button, el campo que modificaré, para lo cual necesito mantener el valor de la variable $var, para ser enviada a "actualizar.php" y modificar uno de los campos de tablaA.

Código PHP:
UPDATE tablaA SET campo2'nuevo_valor' WHERE campo_id'$var' 
E en esto último "actualizar.php" donde tengo los problemas, ya que no se como mantener el valor de la variable $var, mientras cambio de archivos.

Por otra parte no se si la forma de actualizar la tabla sea la correcta para mysql.
  #2 (permalink)  
Antiguo 20/04/2016, 18:37
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Problema con variable externa

Puedes crear un input type="hidden" y asignarle el valor para que sea enviado como parte del formulario.... busca acerca de eso
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 21/04/2016, 01:52
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Problema con variable externa

Efectivamente como te indica el compañero con un input hidden te puede valer.

Código PHP:
Ver original
  1. <input type="hidden" name="var_id" id="var_id" value"<?php echo $var; ?>" />
__________________
Unset($vida['malRollo']);
  #4 (permalink)  
Antiguo 25/04/2016, 11:24
 
Fecha de Ingreso: febrero-2016
Mensajes: 48
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Problema con variable externa

El hidden iria en actualizar.php?? o en resultado.php??
  #5 (permalink)  
Antiguo 25/04/2016, 11:47
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Problema con variable externa

dentro de <form> </form> dado que es parte del formulario que envias, es como un input text, pero con valor pre-establecido y escondido
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #6 (permalink)  
Antiguo 25/04/2016, 12:38
 
Fecha de Ingreso: febrero-2016
Mensajes: 48
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Problema con variable externa

En buscar.php lo deje asi:

Es el campo de texto donde se ingresara el numero a buscar en la BD
Código PHP:
 <input type="text" name="ot" id="ot" /> 
En resultado.php, recupere el valor del campo dentro del formulario
Código PHP:
 <input type="hidden" name="ot" id="ot" value"<?php echo $ot?>" />
Y el fomulario de resultado.php fue enviado a actualizar.php

Aqui recupero los valores del formulario
Código PHP:
$resultado $_POST["radio"]; 
$resultado2 $_POST["comentario"]; 
$ot2 $_POST["ot"]; 
Y aqui actualizo la tabla
Código PHP:
"UPDATE orden2 SET estado='".$resultado."', comentario='".$resultado2."' WHERE orden_id=".$ot2
Pero no actualiza, y no me detecta errores de sintaxis.
  #7 (permalink)  
Antiguo 25/04/2016, 13:29
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Problema con variable externa

Muestranos el codigo completo de actualizar.php aqui debe estar el problema... para iniciar, estoy viendo que no compruebas tus variables POST, deberias verificarlas siempre... pero muestranos lo demas
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #8 (permalink)  
Antiguo 25/04/2016, 13:58
 
Fecha de Ingreso: febrero-2016
Mensajes: 48
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Problema con variable externa

Cita:
Iniciado por petit89 Ver Mensaje
Muestranos el codigo completo de actualizar.php aqui debe estar el problema... para iniciar, estoy viendo que no compruebas tus variables POST, deberias verificarlas siempre... pero muestranos lo demas
resultado.php
Código PHP:
<?php
require_once("conexion.php");
require(
'funciones.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>RUTA Control</title>
<link href="css/estilos_basicos.css" rel="stylesheet" type="text/css" />
<link href="css/textos.css" rel="stylesheet" type="text/css" />
</head>

<body>
<?php

$ot 
$_POST["ot"];
//echo $ot; 

$resultado mysql_query("SELECT * FROM orden2 WHERE orden2_id=$ot",$con);
while(
$fila=mysql_fetch_array($resultado)){ ?>


<div id="principal">
  <div id="encabezado"><img src="imagenes/logo ruta.png" width="900" height="148" alt="logo" /></div>
  <div id="menu"><a href="orden.php"><img src="imagenes/ot.gif" width="225" height="46" alt="orden" /></a><a href="sector.php"><img src="imagenes/sector.gif" width="225" height="46" alt="sector" /></a><a href="producto.php"><img src="imagenes/prod.gif" width="225" height="46" alt="producto" /></a><a href="listar3.php"><img src="imagenes/listar.gif" width="225" height="46" alt="listar" /></a></div>
  <div id="contenido">
      <div class="texto">
        
          <h1>Orden de Trabajo: <?php echo $fila['orden2_id'];?></h1>
          <form id="form1" name="form1" method="post" action="actualizarot.php">
            <table width="600" border="1">
              <tr>
                <td width="150">Actividad</td>
                <td width="150" colspan="2"> 
                  <label for="actividad3"></label>
                  <input type="text" name="actividad" id="actividad3" readonly="readonly" value="<?php echo $fila['actividad'];?>" />
                <td width="150">Sector</td>
                <td width="150">
                <label for="sector3"></label>
                <input type="text" name="sector" id="sector3" readonly="readonly" value="<?php echo $fila['sector'];?>" />
            </tr>
              <tr>
                <td>Cuartel</td>
                <td colspan="2">
                 <label for="cuartel">
                    
                </label>
                <label for="cuartel2"></label>
              <input type="text" name="cuartel" id="cuartel2" readonly="readonly" value="<?php echo $fila['cuartel'];?>" /></td>
                <td>Fecha de Inicio</td>
                <td><label for="fechainicio"></label>
              <input type="text" name="fechainicio" id="fechainicio" readonly="readonly" value="<?php echo cambiar_a_normal2($fila['fecha_inicio']);?>"/></td>
            </tr>
              <tr>
                <td>Costo</td>
                <td colspan="2"><label for="costo"></label>
              <input name="costo" type="text" id="costo" readonly="readonly" value="<?php echo $fila['costo'];?>" /></td>
                <td>Trabajadores</td>
                <td><label for="trabajadores"></label>
              <input name="trabajadores" type="text" id="trabajadores" readonly="readonly" value="<?php echo $fila['trabajadores'];?>" /></td>
            </tr>
              <tr>
                <td>Producto</td>
                <td>
                  <label for="producto">
                    
                </label>
                <label for="producto2"></label>
              <input type="text" name="producto" id="producto2" readonly="readonly" value="<?php echo $fila['producto'];?>"/></td>
                <td>&nbsp;</td>
                <td>Aprobar
                  <input type="radio" name="radio" id="aprob" value="aprobada" />
              <label for="aprob"></label></td>
                <td>Correguir 
                  <input type="radio" name="radio" id="correg" value="correguir" />
              <label for="correg"></label></td>
            </tr>
              <tr>
                <td>Comentario</td>
                <td colspan="4"><label for="comentario"></label>
              <textarea name="comentario" id="comentario" cols="55" rows="5" ></textarea></td>
            </tr>
              <tr>
                <td colspan="5"> <center><input type="reset" name="button" id="button" value="Cancelar" />                  <input type="submit" name="button2" id="button2" value="Enviar" /> </center></td>
            </tr>
          </table>
          <?php ?>
          <input type="hidden" name="ot" id="ot" value"<?php echo $ot?>" />
      </form>
          <p>&nbsp; </p>
      </div>
   
  </div>
  <div id="pie">Ruta Control</div>
</div>
</body>
</html>
actualizar.php

Código PHP:
<?php
require_once("conexion.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>RUTA Control</title>
<link href="css/estilos_basicos.css" rel="stylesheet" type="text/css" />
<link href="css/textos.css" rel="stylesheet" type="text/css" />
</head>

<body>

<?php
$resultado 
$_POST["radio"]; 
$resultado2 $_POST["comentario"]; 
$ot2 $_POST["ot"];

?>

<div id="principal">
  <div id="encabezado"><img src="imagenes/logo ruta.png" width="900" height="148" alt="logo" /></div>
  <div id="menu"><a href="orden.php"><img src="imagenes/ot.gif" width="225" height="46" alt="orden" /></a><a href="sector.php"><img src="imagenes/sector.gif" width="225" height="46" alt="sector" /></a><a href="producto.php"><img src="imagenes/prod.gif" width="225" height="46" alt="producto" /></a><a href="listar3.php"><img src="imagenes/listar.gif" width="225" height="46" alt="listar" /></a></div>
  <div id="contenido">
      <div class="texto">
        
          <h1>Orden de Trabajo Actualizada</h1>
                     <?php "UPDATE orden2 SET estado='".$resultado."', comentario='".$resultado2."' WHERE orden_id=".$ot2
                echo 
"Datos actualizados correctamete";
                
?>
      <p>&nbsp; </p>
      </div>
   
  </div>
  <div id="pie">Ruta Control</div>
</div>
</body>
</html>

Última edición por calel_leon; 25/04/2016 a las 15:53
  #9 (permalink)  
Antiguo 25/04/2016, 16:34
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Problema con variable externa

para resultado.php:

Código PHP:
Ver original
  1. if(isset($_POST['ot']) && !empty($_POST['ot'])){
  2. $ot = $_POST["ot"];
  3. //echo $ot;
  4. }else{
  5. echo "no hay variable post!";
  6. exit();
  7. }
de esta manera verificas si existe algun parametro POST llamado ot y no esta vacio, entonces la asignas... si no existe te manda el mensaje y deja de ejecutar codigo, lo mismo aqui(actualizar.php):

Este codigo deberia ir primero que cualquier otra linea en cada documento, arriba del <html>
Código PHP:
Ver original
  1. //Por supuesto que existen mejores verificaciones, pero para efectos de ejemplo
  2. if(isset($_POST['radio'])){
  3. $resultado = $_POST['radio'];
  4. }
  5. if(isset($_POST['comentario'])){
  6. $resultado2 = $_POST['comentario'];
  7. }
  8. if(isset($_POST['ot'])){
  9. $ot2 = $_POST['ot'];
  10. }

Y por ultimo...
Código PHP:
<?php "UPDATE orden2 SET estado='".$resultado."', comentario='".$resultado2."' WHERE orden_id=".$ot2
                echo 
"Datos actualizados correctamete";
?>

aqui tienes una sentencia... pero no la estas ejecutando ni definiendo ¿que es?
deberia ser algo como:
Código PHP:
<?php 
$sql 
"UPDATE orden2 SET estado='".$resultado."', comentario='".$resultado2."' WHERE orden_id=".$ot2;
$sql_query mysql_query($sql);
if(
$sql_query){
                echo 
"Datos actualizados correctamente";
}else{
echo 
"error en actualización";
}
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #10 (permalink)  
Antiguo 25/04/2016, 19:43
 
Fecha de Ingreso: febrero-2016
Mensajes: 48
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Problema con variable externa

Cita:
Iniciado por petit89 Ver Mensaje
para resultado.php:

Código PHP:
<?php 
$sql 
"UPDATE orden2 SET estado='".$resultado."', comentario='".$resultado2."' WHERE orden_id=".$ot2;
$sql_query mysql_query($sql);
if(
$sql_query){
                echo 
"Datos actualizados correctamente";
}else{
echo 
"error en actualización";
}
El código realiza todo bien, las verificaciones las pasa sin problemas, pero al final no actualiza los datos y envía el mensaje "error en actualización"
  #11 (permalink)  
Antiguo 25/04/2016, 20:41
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Problema con variable externa

Verifica lo siguiente:
- Estas recibiendo datos en todas las POST?
- $ot2 te imprime numero o letras?
- Estas seguro que tus campos en la tabla llamada orden2, se llaman: orden_id, estado y comentario??
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #12 (permalink)  
Antiguo 26/04/2016, 04:10
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Problema con variable externa

Tienes un pequeño error en el html
Código HTML:
Ver original
  1. <input type="hidden" name="ot" id="ot" value"<?php echo $ot; ?>" />
Fijate bien en el value, debería ser asi (falta el =)
Código HTML:
Ver original
  1. <input type="hidden" name="ot" id="ot" value="<?php echo $ot; ?>" />

Por cierto, cuesta un poco seguir tu código por lo menos desde el móvil, maquetar un formulario con tablas a estas alturas es un horror para mi.
__________________
Unset($vida['malRollo']);
  #13 (permalink)  
Antiguo 26/04/2016, 09:30
 
Fecha de Ingreso: febrero-2016
Mensajes: 48
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Problema con variable externa

Logre encontrar el error.

Código PHP:
 <?php 
$sql 
"UPDATE orden2 SET estado='".$resultado."', comentario='".$resultado2."' WHERE orden_id=".$ot2;
$sql_query mysql_query($sql);
if(
$sql_query){
                echo 
"Datos actualizados correctamente";
}else{
echo 
"error en actualización";
}
Debia ser cambiado por WHERE orden2_id=".$ot2; (faltaba el 2 en orden2_id)
Código PHP:
 <?php 
$sql 
"UPDATE orden2 SET estado='".$resultado."', comentario='".$resultado2."' WHERE orden2_id=".$ot2;
$sql_query mysql_query($sql);
if(
$sql_query){
                echo 
"Datos actualizados correctamente";
}else{
echo 
"error en actualización";
}
Muchas gracias a todos por la ayuda.

Etiquetas: externa, mysql, select, tabla, variable
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 08:40.