Foros del Web » Programando para Internet » PHP »

No puedo actualizar un campo de mi tabla.

Estas en el tema de No puedo actualizar un campo de mi tabla. en el foro de PHP en Foros del Web. Hola amigos, varias veces he recurrido a este foro y siempre me han ayudado a dar con la respuesta. Estoy seguro que hoy no será ...
  #1 (permalink)  
Antiguo 22/09/2011, 17:14
 
Fecha de Ingreso: septiembre-2011
Ubicación: Tabasco Mexico
Mensajes: 30
Antigüedad: 13 años, 2 meses
Puntos: 0
No puedo actualizar un campo de mi tabla.

Hola amigos, varias veces he recurrido a este foro y siempre me han ayudado a dar con la respuesta. Estoy seguro que hoy no será la excepción.

Explica en general mi problema:

Tengo una tabla que se llama "incidencias", en la cual registro cualquier tipo de accidente que haya ocurrido en X lugar. Las incidencias tienen 2 estados ("pendiente" y "solucionado"). He creado una página php que me realiza una consulta a la tabla y que solo me muestre aquellos registros que tienen el estado "pendiente" para posteriormente seleccionarlo con un RadioButton y agregar posteriormente su solución.

Aquí muestro parte del código de la página "solucion.php":

Código PHP:
<?php


$conexion 
mysql_connect ("localhost""root""admin")
         or die (
"No se puede conectar con el servidor");
      
mysql_select_db ("3levels")
         or die (
"No se puede seleccionar la base de datos");
      
 
     
      if(isset(
$_POST['seleccion'])){
      
$valor=$_POST['seleccion'];
      
$instruccion "SELECT * FROM incidencias WHERE id='$valor' ";      
      
$consulta mysql_query ($instruccion$conexion)
         or die (
mysql_error()); 
}
      
      
      
mysql_close ($conexion);
      
        while(
$row mysql_fetch_array($consulta)) 

      
echo
'<form name="form1" method="post" action="solucionar.php">';
echo 
' <table>  ';

echo 
'<tr>';
echo 
'<td>N° de incidencia: </td>';
echo 
'<td><input name= "id" type= "text" value="'.$row['id'].'"maxlength="50" size="50" disabled readonly/></td>';
echo 
'</tr>';


echo 
'<tr>';
echo 
'<td>Incidencia: </td>';
//echo '<textarea onKeyUp="this.value = this.value.toUpperCase();" name="descripcion" rows="5" cols="40" value="'.$row['select1'].'"></textarea>';
echo '<td><input name= "select1" type= "text" value="'.$row['select1'].'"maxlength="50" size="50" disabled readonly/></td>';
echo 
'</tr>';

    
echo 
'<tr>';
echo 
'<td>Descripci&oacute;n: </td>';
echo 
'<td><textarea onKeyUp="this.value = this.value.toUpperCase();" name="descripcion" rows="5" cols="40" disabled>'.$row['descripcion'].'</textarea></td>';
//echo '<td><input name= "desripcion" type= "text" value="'.$row['descripcion'].'"maxlength="50" size="50" disabled readonly/></td>';
echo '</tr>'

echo 
'<tr>';
echo 
'<td>Solucion: </td>';
echo 
'<td><textarea onKeyUp="this.value = this.value.toUpperCase();" name="solucion" rows="5" cols="40" value=""></textarea></td>';
echo 
'</tr>';                                
                     
     
echo 
'<tr>';        
echo 
'<td> Solucion&oacute;: </td>'
echo 
'<td><select style="float:left" name="soluciono" id="soluciono">';
echo 
'<option value="">Elige</option>';
echo 
'<option value="CONTROL INTERNO">CONTROL INTERNO</option>';
echo 
'<option value="VOLUNTARIOS">VOLUNTARIOS</option>';
echo 
'<option value="COPAG">COPAG</option>';
echo 
'<option value="SEGURIDAD PUBLICA">SEGURIDAD PUBLICA</option>';
echo 
'</select>'
echo 
'</td>';
echo 
'</tr>';     


 
echo 
'<tr>';
echo 
'<td></td>';
echo 
'<td>';                                
echo 
'<input type="submit" name="registrar" id="registrar" value="Solucionar incidencia"/>';
echo 
'<input type="button" value="Regresar" onClick="javascript:history.go(-1)" />';
echo 
'</td>';
echo 
'</tr>';
 
echo 
'</table>';                      
echo 
'</form>';

}
?>
El código anterior jala perfecto. Me muestra todos los campos del registro que seleccioné con el RadioButton.

Ahora, el problema radica en que en el textarea "solucion" yo debo de escribir una solucion y qué departamento solucionó la incidencia que está pendiente y, posteriormente esos datos grabarlos en el registro seleccionado.

Aquí tengo el código que intenté hacer para la actualización "solucionar.php":


Código PHP:

<?php
$id 
$_POST['id'];
$solucion $_POST['solucion'];

$conexion mysql_connect ("localhost""root""admin")
         or die (
"No se puede conectar con el servidor");
      
mysql_select_db ("3levels")
         or die (
"No se puede seleccionar la base de datos");
      
       
      
$instruccion "UPDATE incidencias SET solucion= '$solucion' WHERE id= '$id'";      
      
$consulta mysql_query ($instruccion$conexion)
         or die (
mysql_error()); 

      
      
      
mysql_close ($conexion);
      
     
      
?>
No sé que tengo mal, pero espero puedan ayudarme a encontrarle el problema. Muchas gracias.
  #2 (permalink)  
Antiguo 22/09/2011, 17:42
Avatar de saseisa  
Fecha de Ingreso: agosto-2006
Mensajes: 329
Antigüedad: 18 años, 3 meses
Puntos: 9
Respuesta: No puedo actualizar un campo de mi tabla.

porque no pruebas verificando si pasa la variable
Código PHP:
echo $solucion $_POST['solucion']; 
para ver si esta pasando de una pagina a otra
  #3 (permalink)  
Antiguo 22/09/2011, 17:54
 
Fecha de Ingreso: septiembre-2011
Ubicación: Tabasco Mexico
Mensajes: 30
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: No puedo actualizar un campo de mi tabla.

He hecho esto:

Código PHP:
<?php
        
echo $solucion $_POST['solucion'];  
        echo 
$id$_POST['id'];
        echo 
$soluciono=$_POST['soluciono'];
        
?>
Y solo me imprime la solucion y solucionó, pero hay un problema con el id porque es el que no imprime...
  #4 (permalink)  
Antiguo 22/09/2011, 18:13
 
Fecha de Ingreso: septiembre-2011
Ubicación: Tabasco Mexico
Mensajes: 30
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: No puedo actualizar un campo de mi tabla.

Alguien me puede ayudar a identificar el problema? Por qué no puedo recibir la variable "id" ????
  #5 (permalink)  
Antiguo 22/09/2011, 18:16
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: No puedo actualizar un campo de mi tabla.

Puede ser o no que esté haciendo conflicto el nombre "id" intenta cambiarlo en todos los lados por id_indicencia u otro que no sea id.

Revisa esta línea:

Código PHP:
Ver original
  1. echo '<td><input name="id" type="text" value="'.$row['id'].'"maxlength="50" size="50" disabled readonly/></td>';

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
  #6 (permalink)  
Antiguo 22/09/2011, 18:27
 
Fecha de Ingreso: septiembre-2011
Ubicación: Tabasco Mexico
Mensajes: 30
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: No puedo actualizar un campo de mi tabla.

En el archivo "solucion.php" me muestra el resultado de la consulta, en los inputs me muestra los campos del registro que seleccioné. A la hora de mandar los datos a "solucionar.php" solo los datos que capturé en los inputs "solucion" y "soluciono" son los que se pasan, ya que son los datos que necesito agregar a la bd. Los inputs "id", "incidencia", "descripcion" no los manda, tal vez porque esos datos son consultados... Pero cómo hago para comparar la "id" ??

Código PHP:
<?php 
$id 
$_POST['id']; //La id no la recibe :S
$solucion $_POST['solucion']; 

$conexion mysql_connect ("localhost""root""admin"
         or die (
"No se puede conectar con el servidor"); 
      
mysql_select_db ("3levels"
         or die (
"No se puede seleccionar la base de datos"); 
       
        
      
$instruccion "UPDATE incidencias SET solucion= '$solucion' WHERE id= '$id'";      
       
$consulta mysql_query ($instruccion$conexion
         or die (
mysql_error());  

       
       
      
mysql_close ($conexion); 
       
      
       
?>
  #7 (permalink)  
Antiguo 22/09/2011, 18:33
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: No puedo actualizar un campo de mi tabla.

En los campos que te están fallando no estás respetando los espacios, intenta ponerle espacio después de las comillas:

value="'.$row['select1'].'"maxlength="50"

No tiene nada que ver si son consultados o no, arma bien tu formulario y verifica que se muestren todos los datos en solucion.php.
__________________
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
  #8 (permalink)  
Antiguo 22/09/2011, 18:46
 
Fecha de Ingreso: septiembre-2011
Ubicación: Tabasco Mexico
Mensajes: 30
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: No puedo actualizar un campo de mi tabla.

Ya le cambié el nombre a los Inputs y los formateé. Pero aún así no jala... No guarda los inputs consultados... :( Alguien tendrá un ejemplo parecido en el que pueda fijarme?
  #9 (permalink)  
Antiguo 22/09/2011, 18:58
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: No puedo actualizar un campo de mi tabla.

quitale el disabled a los campos que no te funcionan.
__________________
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

Última edición por andresdzphp; 22/09/2011 a las 19:09
  #10 (permalink)  
Antiguo 22/09/2011, 21:02
 
Fecha de Ingreso: septiembre-2011
Ubicación: Tabasco Mexico
Mensajes: 30
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: No puedo actualizar un campo de mi tabla.

Tan simple como eso.... Muchas gracias Andrés... Gracias por tomarte la molestia, aunque haya sido algo muy pequeño, en verdad se aprende de esto y disculpa por las molestias. Que tengas un gran día!!!

Etiquetas: mysql, registro, tabla, campos
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 21:52.