Foros del Web » Programando para Internet » PHP »

Problema para realizar Update

Estas en el tema de Problema para realizar Update en el foro de PHP en Foros del Web. Hola. Tengo un problema que y nose como poder solucionarlo realmente, lo que sucede es que cuando me voy a la sección actualizar los datos ...
  #1 (permalink)  
Antiguo 14/12/2008, 16:12
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 1 mes
Puntos: 0
Problema para realizar Update

Hola.
Tengo un problema que y nose como poder solucionarlo realmente, lo que sucede es que cuando me voy a la sección actualizar los datos del perfil del usuario cargo los datos que trae este en su perfil en un formulario con textbox y ademas el formulario tiene dos combobox una que me carga los nombres de la comunas (santiago, maipu, etc) y otra que me carga los cargos del usuario (teleefonista, secretaria, etc). Y se pueden escoger nuevamente si se desea.

Ahora mi problematica se presenta cuando yo voy a actualizar los datos que se me han requerido, y entre ellos los contenidos de los combobox. Lo que pasa que en estos combobox yo no carge los id (PK) de las tablas "comuna" y "cargo_usuario_municipal" ya que el usuario ve sus nombres. Por ello tengo que pregunar por el evaluar el contenido de esos dos combos y de acuerdo a ello insertar su respectivo id en la tabla. Y mi pregunta
¿pero como puedo hacer para analizar esos dos contenidos en unasola consulta? ¿es posible?

Aqui mi codigo.

Código PHP:
<?php
//    
    
function modificar_usuario()
    {
    
//echo 'modificando usuario';
    //}
?>        
<table width="100%" >
        <br>
<tr>
                <td align="center" bgcolor="#99CCFF"><b> <font face="Arial, Helvetica, sans-serif" size="2"> Perfil Usuario de sistemas </font></b> </td>
            </tr>
        </table>
<?php

            $conexion 
mysql_connect(localhost,root,'') or die ('Error de conexion, el error es : '.mysql_error());
            
mysql_select_db(municipio,$conexion) or die ('Error de selecion de Base de Datos, el error es :'.mysql_error());
            
$consulta 'select * from usuario_municipal where usu_muni_rut= "'.substr($_POST['rut'],0,2).substr($_POST['rut'],3,3).substr($_POST['rut'],7,3).'"';
            
//echo "$consulta";
            //Ejecucion de la consulta SQL.
            
$resultado mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
            echo 
'<form name="modificar_usyario" action="adm_maestro_usuario.php" method="post" target="_self">';
            echo 
"<table border = '0' , align='center' \n";    
            while (
$row mysql_fetch_row($resultado))
            {
            
//echo "<tr><td<font face='Arial' size='2'>Rut</td><td><input type='text' name='rut' value=$row[0] size='8' readonly> - <input type='text' name='dv' value=$row[1] size='1' readonly></td></tr>";
            
echo "<br>";
            echo 
"<tr><td <font face='Arial' size='2'> <b>Datos De Sistema</b></td>";
            echo 
"<tr><td<font face='Arial' size='2'>Código Usuario</td><td><input type='text' name='codigo' value=$row[0]  size='2' readonly/></td> </tr>";
            
//echo "<tr><td<font face='Arial' size='2'>Cargo Usuario</td><td><input type='text' name='cargo' value=$row[1] size='8'></td></tr>";
            
echo "<tr>
                    <td>Cargo Usuario</td>
                    <td><select name='cargo'>
            <option selected='selected'>Seleccione una Cargo</option>"
;
            
$conexion mysql_connect(localhost,root,'') or die ('Error de conexion, el error es : '.mysql_error());
            
//Seleccion de la Base de Datos.
            
mysql_select_db(municipio,$conexion) or die ('Error de selecion de Base de Datos, el error es :'.mysql_error());
            
//Confeccion de la consulta SQL.
            
$consulta 'SELECT CARGO_USU_DES FROM cargo_usuario_muni';
            
//echo "$consulta";
            //Ejecucion de la consulta SQL.
            
$resultado mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
            
//Extraccion del dato.
               
$cargo mysql_fetch_row($resultado);
            
//Comprueba existencia de resultado
            
if (mysql_num_rows($resultado))
            {
                
//Muestra los resultados
                
for ($i 0;$i <= mysql_num_rows($resultado)-1$i++)
                {
                    if (!
mysql_data_seek($resultado$i))
                    {
                        echo 
"No se puede mostrar la fila ".$i.", el error es: ".mysql_error();
                        continue;
                    }
                    if (!(
$registro mysql_fetch_row($resultado)))
                    {
                        continue;
                    }
                    
                    echo 
'<option>'.$registro[0].'</option>';
                }
            }
        echo 
'</td>';
          echo 
'</tr>';
            echo 
"<tr><td <font face='Arial' size='2'> Correo Usuario</td> <td><input type='text' name='correo' value=$row[12] size='30'></td></tr>";
            echo 
"<tr><td <font face='Arial' size='2'> Clave Usuario</td> <td><input type='text' name='clave' value=$row[13]></td></tr>";
            echo 
"<tr><td <font face='Arial' size='2'> <b>Datos De Personales</b></td>";
            echo 
"<tr><td<font face='Arial' size='2'>Rut</td><td><input type='text' name='rut' value=$row[2] size='8' readonly> - <input type='text' name='dv' value=$row[3] size='1' readonly></td></tr>";
            echo 
"<tr><td <font face='Arial' size='2'> Nombre</td><td><input type='text' name='nombre' value=$row[4]></td></tr>";
            echo 
"<tr><td <font face='Arial' size='2'> Apelido Paterno</td> <td><input type='text' name='paterno' value=$row[5]></td></tr>";
            echo 
"<tr><td <font face='Arial' size='2'> Apellido Materno</td><td><input type='text' name='materno' value=$row[6]></td></tr>";
            echo 
"<tr><td <font face='Arial' size='2'> <b>Datos De Contacto</b></td>";
            echo 
"<tr><td <font face='Arial' size='2'> Telefono</td> <td><input type='text' name='fono' value=$row[7]></td></tr>";
            echo 
"<tr><td <font face='Arial' size='2'> Pasaje</td> <td><input type='text' name='pasaje' value=$row[8]></td><td <font face='Arial' size='2'> Numero</td> <td><input type='text' name='numero' value=$row[9]></td><td <font face='Arial' size='2'> Población</td> <td><input type='text' name='villa' value=$row[10]></td></tr>";
            echo 
"<tr>
                    <td> Comuna</td>
                    <td><select name='comuna'>
            <option selected='selected'>Seleccione una Comuna</option>"
;
            
//<input type='text' value=$row[11]></td></tr>
            //Conexion a la Base de Datos.
            
$conexion mysql_connect(localhost,root,'') or die ('Error de conexion, el error es : '.mysql_error());
            
//Seleccion de la Base de Datos.
            
mysql_select_db(municipio,$conexion) or die ('Error de selecion de Base de Datos, el error es :'.mysql_error());
            
//Confeccion de la consulta SQL.
            
$consulta 'SELECT comuna_nom FROM comuna';
            
//echo "$consulta";
            //Ejecucion de la consulta SQL.
            
$resultado mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
            
//Extraccion del dato.
               
$cargo mysql_fetch_row($resultado);
            
//Comprueba existencia de resultado
            
if (mysql_num_rows($resultado))
            {
                
//Muestra los resultados
                
for ($i 0;$i <= mysql_num_rows($resultado)-1$i++)
                {
                    if (!
mysql_data_seek($resultado$i))
                    {
                        echo 
"No se puede mostrar la fila ".$i.", el error es: ".mysql_error();
                        continue;
                    }
                    if (!(
$registro mysql_fetch_row($resultado)))
                    {
                        continue;
                    }
                    
                    echo 
'<option>'.$registro[0].'</option>';
                }
            }
        echo 
'</td>';
          echo 
'</tr>';
            echo 
"</tr> \n";
            }
            echo 
"</table> \n";
        
//echo substr($_POST['rut'],0,2).substr($_POST['rut'],3,3).substr($_POST['rut'],7,3);

    
?>        
    <br>
<table width="827" border="0" align="center">
    <tr>
        <td><input type="submit" name="enviar"  value="Volver"></td><td><input type="reset" name="borrar" value="Borrar Todo"></td><td><input type="submit" name="enviar" value="Guardar"></td>
    </tr>
</table>

<?php
            
//Conexion a la Base de Datos.
            
$conexion mysql_connect(localhost,root,'') or die ('Error de conexion, el error es : '.mysql_error());
            
//Seleccion de la Base de Datos.
            
mysql_select_db(municipio,$conexion) or die ('Error de selecion de Base de Datos, el error es :'.mysql_error());

// AQUI ES DONDE EMPIESA EL PROBLEMA, NECESITO ANALIZAR LOS CONTENIDOS DE LOS DOS COMBOBOX Y TOMAR SU ID PARA LA ACTUALIZACIÓN

            
$consulta 'SELECT comuna_cod FROM comuna WHERE comuna_nom = "'.$_POST['comuna'].'"';  
        
//    $consulta1 = 'SELECT CARGO_USU_MUNI FROM usuario_municipal WHERE CARGO_USU_DES = "'.$_POST['cargo'].'"';  
            //Ejecución de consulta
            
$resultado mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
            
//$resultado2 = mysql_query($consulta1,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
            //Extraccion del dato.
            
$comuna mysql_fetch_row($resultado);
            
//$cargo = mysql_fetch_row($resultado2);
            //Confeccion de la consulta SQL.            
            
$consulta 'update usuario_municipal set USU_MUNI_COD="'.$_POST['codigo'].'",CARGO_USU_MUNI="'.$cargo[0].'",USU_MUNI_RUT="'.$_POST['rut'].'",USU_MUNI_DV="'.$_POST['dv'].'",USU_MUNI_NOM="'.$_POST['nombre'].'",USU_MUNI_PAT="'.$_POST['paterno'].'",USU_MUNI_MAT="'.$_POST['materno'].'",USU_MUNI_FONO ="'.$_POST['fono'].'",USU_MUNI_PAS ="'.$_POST['pasaje'].'",USU_MUNI_NUM ="'.$_POST['numero'].'",USU_MUNI_POB ="'.$_POST[''].'",COMUNA_COD ="'.$comuna[0].'",USU_MUNI_CORREO ="'.$_POST['correo'].'",USU_MUNI_CLAVE ="'.$_POST['clave'].'" where USU_MUNI_RUT = "'.$_POST['rut'].'"';
            
//echo"$consulta";
            //Ejecución de consulta 
            
mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());            
                
            echo 
'</form>';
        }
//Cierro formulario
?>

Muchisimas Gracias

Última edición por Coala; 14/12/2008 a las 16:32
  #2 (permalink)  
Antiguo 14/12/2008, 18:04
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Problema para realizar Update

Puedes hacer el combo asi:

Código HTML:
<select name="combo">
   <option value="1">Uno</option>
   <option value="2">Dos</option>
   <option value="3">Tres</option>
</select> 
El usuario ve el nombre, pero lo que se envia es el id (value...)

Saludos
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #3 (permalink)  
Antiguo 14/12/2008, 18:11
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Problema para realizar Update

Cita:
Iniciado por Fridureiks Ver Mensaje
Puedes hacer el combo asi:

Código HTML:
<select name="combo">
   <option value="1">Uno</option>
   <option value="2">Dos</option>
   <option value="3">Tres</option>
</select> 
El usuario ve el nombre, pero lo que se envia es el id (value...)

Saludos
Pero ahí no se estarian cargando los datos de la tablas de la base datos. ¿Verdad?

Última edición por Coala; 14/12/2008 a las 18:29
  #4 (permalink)  
Antiguo 14/12/2008, 18:51
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Problema para realizar Update

Es solo un ejemplo, deberías tu cargarle los datos que correspondan y en ese caso deberías poner en value el id de tu tabla y en la otra parte el nombre.

Sería algo asi:

Código PHP:
            $consulta 'SELECT comuna_id, comuna_nom FROM comuna';
            
//echo "$consulta";
            //Ejecucion de la consulta SQL.
            
$resultado mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
            
//Extraccion del dato.
               
$cargo mysql_fetch_row($resultado);
            
//Comprueba existencia de resultado
            
if (mysql_num_rows($resultado))
            {
                
//Muestra los resultados
                
for ($i 0;$i <= mysql_num_rows($resultado)-1$i++)
                {
                    if (!
mysql_data_seek($resultado$i))
                    {
                        echo 
"No se puede mostrar la fila ".$i.", el error es: ".mysql_error();
                        continue;
                    }
                    if (!(
$registro mysql_fetch_row($resultado)))
                    {
                        continue;
                    }
                    
                    echo 
'<option value="' $registro[0] . '">'.$registro[1].'</option>';
                }
            } 
__________________
Federico.

Mi página: www.jourmoly.com.ar
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 12:52.