Programación Web y Scripting > PHP

 Actualización de Datos

<< < (2/3) > >>

lair:
Hola:

mira revisando mas a detalle tu codigo me paresio encontrar mas errores:

Edita Emp.php

--- Código: PHP --- <table width="800" border="1" bordercolor="#CCCCCC" align="center" cellpadding="10" cellspacing="0">    <form method='POST' action='EditaEmp1.php'>        <tr>            <td colspan='2' bgcolor="#ECEEF0"><div align='center'>                <p><span class="Estilo1">Editar Empresa</span><br/>                </p>                </div>            </td>        </tr>        <tr>            <td width="210">Nombre Empresa :</td>            <td width="544"> <!-- si vas a extenderlo mejor usa un colspan o rowspan -->                <?                    include("config.inc.php");                    $consult_emp="SELECT id_emp,Nombre_emp,Rut_emp,Telefono_emp,Direccion_emp FROM empresa ORDER BY Nombre_emp";                    $result=mysql_query($consult_emp) or die ("Fallo la busqueda");                     echo '<select name="Nombre_emp"/>';//la variable que esperas capturar se llama Nombre_emp                     //Generamos el menu desplegable                    while ($row=mysql_fetch_array($result))                    {                        echo '<option>'.$row["Nombre_emp"];                        $Nombre_emp=$row["Nombre_emp"];                    }                ?>            </td>        </tr>        <br/><!-- este no sirve de nada aqui -->        <tr>            <td colspan='2' align='center' bgcolor="#ECEEF0">                <input name='Seleccionar' type='submit' value='Seleccionar' />            </td>        </tr>    </form></table> 
EditaEmp1.php

--- Código: PHP --- <?    include("config.inc.php");     $Nom=$_POST["Nombre_emp"];//aqui la capturas y la almacenas en la variable $Nom     /*     * Aqui tu variable $Nombre_emp ya no existe ahora es $Nom, por lo que creo que esa consulta es retornando vacio     */    $sql="SELECT Nombre_emp,Rut_emp,Telefono_emp,Direccion_emp FROM Empresa WHERE Nombre_emp='$Nombre_emp'";     $result=mysql_query($sql) or die("Problemas en la conexion en la Selección");    while ($row=mysql_fetch_array($result))    {        $Nombre_emp=$row["Nombre_emp"];        $rut=$row["Rut_emp"];        $separar = explode('-',$rut);        $rut1=$separar[0];        $dig=$separar[1];        $tel=$row["Telefono_emp"];        $dir=$row["Direccion_emp"];    }?><table width="800" border="1" bordercolor="#CCCCCC" align="center" cellpadding="10" cellspacing="0">    <!--    Aqui a la linea action='grabau.php?Nombre_emp' no solo la variable no existe sino que si quieres poner ahi un parametro que viene desde     php deveria ser de la siguiente manera action='grabau.php?<?php echo $Nombre_emp; ?>' eso en caso de que ESA VARIABLE SEA LA CORRECTA    -->    <form id='EditaEmp1' name='form1' method='POST' action='grabau.php?Nombre_emp'>    <tr>        <td colspan='2' bgcolor="#ECEEF0"><div align='center'>            <p><span class="Estilo1">Editar Datos de la Empresa: <? echo $Nombre_emp; ?></span><br/>            </p>            </div>        </td>    </tr>    <tr>        <td>Rut :</td>        <td><span>            <input name='rut1' value='<? echo $rut1 ?>' type='text' size='10' maxlength='9' />            -            <input name='dig' value='<? echo $dig ?>' type='text' size='1' maxlength='2' />            </span>        </td>    </tr>    <tr>        <td>Telefono :</td>        <td><span>            <input name='tel' value='<? echo $tel ?>' type='text' size='10' maxlength='10' />            </span>        </td>    </tr>    <tr>        <td>Dirección :</td>        <td><span>            <input name='dir' value='<? echo $dir ?>' type='text' size='65' maxlength='150' /></span>        </td>    </tr>    <br/>    <tr>        <td colspan='2' align='center' bgcolor="#ECEEF0">            <input name='Guardar' type='submit' value='Guardar' />        </td>    </tr>    <tr>        <td colspan='2' valign='top'> </td>    </tr>    </form></table> 
grabau.php:

--- Código: PHP --- <?    include ("config.inc.php");    /* No estoy seguro de lo que intentas pero si esta variable es la que mandas por URL (osea aqui action='grabau.php?Nombre_emp'>) no la puedes capturar con $_POST sino con $_GET * */    $Nombre_emp=$_POST["Nombre_emp"];    $rut1 = $_POST['rut1'];    $dig = $_POST['dig'];    $rut = $rut1.'-'.$dig;    $tel = $_POST['tel'];    $dir = $_POST['dir'];    $Nom = $_POST['Nom'];    echo "Nombre_emp: ",$Nombre_emp,$Nom,$rut1,"- ",$rut,"Dir: ",$dir,"Tel; ",$tel;    mysql_query("UPDATE 'empresa' SET Rut_emp='$rut',Telefono_emp='$tel',Direccion_emp='$dir' WHERE Nombre_emp='$Nombre_emp'") or die ("NO GRABO");?><form name='add_emp' method='POST' >    <table width="800" border="1" bordercolor="#CCCCCC" align="center" cellpadding="10" cellspacing="0">        <tr>            <th align="center" bgcolor="#ECEEF0" class="titnoticia2" scope="col">Grabación Empresa </th>        </tr>        <tr>            <td bordercolor="#000000"><table width="774" height="35">        <tr>            <td><div align="center">            <div align="center" class="Estilo1"> DATOS DE NUEVA EMPRESA GRABADO EXITOSAMENTE</div>            </td>        </tr>    </table>    </td> <!-- Creo que estas etiquetas sobran o estan mal posicionadas -->    </tr>     <tr>    <td align='center' bgcolor="#ECEEF0">        <a href="menu_central.php">VOLVER</a></span>    <span align="right"> <a    href="logout.php">SALIR</a></span></td>    </tr>    </table></form> 
intenta con todo eso y suerte, si persisten las molestias aqui estamos para ayudar

SUERTE :good:

F_Tanori:
Edita Emp.php

--- Código: PHP ---<table width="800" border="1"  bordercolor="#CCCCCC"  align="center" cellpadding="10" cellspacing="0">    <form method='POST' action='EditaEmp1.php'>        <tr>        <td colspan='2' bgcolor="#ECEEF0"><div align='center'>        <p><span class="Estilo1">Editar Empresa</span><br/>        </p>        </div></td>        </tr>        <tr>        <td width="210">Nombre Empresa :</td>        <td width="544">        <?            include("config.inc.php");            $consult_emp="SELECT id_emp,Nombre_emp,Rut_emp,Telefono_emp,Direccion_emp FROM empresa ORDER BY Nombre_emp";            $result=mysql_query($consult_emp) or die ("Fallo la busqueda");            echo '<select name="Nombre_emp"/>';            //Generamos el menu desplegable            while ($row=mysql_fetch_array($result))                {                    echo '<option>'.$row["Nombre_emp"];                    $Nombre_emp=$row["Nombre_emp"];                }        ?>        </td>        </tr>        <br/>        <tr>        <td colspan='2' align='center' bgcolor="#ECEEF0">        <input name='Seleccionar' type='submit' value='Seleccionar' /></td>        </tr>    </form></table> 
EditaEmp1.php

--- Código: PHP ---<?    include("config.inc.php");    $Nom=$_POST["Nombre_emp"];    $sql="SELECT Nombre_emp,Rut_emp,Telefono_emp,Direccion_emp FROM Empresa WHERE Nombre_emp='$Nombre_emp'";    $result=mysql_query($sql) or die("Problemas en la conexion en la Selección");    while ($row=mysql_fetch_array($result))    {        $Nombre_emp=$row["Nombre_emp"];        $rut=$row["Rut_emp"];        $separar = explode('-',$rut);        $rut1=$separar[0];        $dig=$separar[1];        $tel=$row["Telefono_emp"];        $dir=$row["Direccion_emp"];    }?><table width="800" border="1"  bordercolor="#CCCCCC"  align="center" cellpadding="10" cellspacing="0">    <form id='EditaEmp1' name='form1' method='POST' action='grabau.php?Nombre_emp'>        <tr>        <td colspan='2' bgcolor="#ECEEF0"><div align='center'>        <p><span class="Estilo1">Editar Datos de la Empresa: <? echo $Nombre_emp; ?></span><br/>        </p>        </div></td>        </tr>        <tr><td>Rut :</td><td><span>        <input name='rut1' value='<? echo $rut1 ?>' type='text' size='10' maxlength='9' />         -         <input name='dig' value='<? echo $dig ?>' type='text' size='1' maxlength='2' />        </span>        </td></tr><tr><td>Telefono :</td><td><span>        <input name='tel' value='<? echo $tel ?>' type='text' size='10' maxlength='10' />        </span>        </td></tr><tr><td>Dirección :</td><td><span>        <input name='dir' value='<? echo $dir ?>' type='text' size='65' maxlength='150' /></span></td>        </tr>        <br/>        <tr>        <td colspan='2' align='center' bgcolor="#ECEEF0">        <input name='Guardar' type='submit' value='Guardar' /></td>        </tr>        <tr>        <td colspan='2' valign='top'> </td>        </tr>    </form></table>   grabau.php:
--- Código: PHP ---     <?    include ("config.inc.php");    $Nombre_emp=$_POST["Nombre_emp"];    $rut1 = $_POST['rut1'];    $dig = $_POST['dig'];    $rut = $rut1.'-'.$dig;    $tel = $_POST['tel'];    $dir = $_POST['dir'];    $Nom = $_POST['Nom'];    echo "Nombre_emp: ",$Nombre_emp,$Nom,$rut1,"- ",$rut,"Dir: ",$dir,"Tel; ",$tel;    mysql_query("UPDATE 'empresa' SET Rut_emp='$rut',Telefono_emp='$tel',Direccion_emp='$dir' WHERE Nombre_emp='$Nombre_emp'") or die ("NO GRABO");    ?>    <form name='add_emp' method='POST' >    <table width="800" border="1"  bordercolor="#CCCCCC"  align="center" cellpadding="10" cellspacing="0">      <tr>        <th align="center" bgcolor="#ECEEF0" class="titnoticia2" scope="col">Grabación  Empresa </th>      </tr>      <tr>        <td bordercolor="#000000"><table width="774" height="35">          <tr>            <td><div align="center">            <div align="center" class="Estilo1"> DATOS DE NUEVA EMPRESA GRABADO EXITOSAMENTE</div></td>          </tr>        </table></td>      </tr>            <tr>        <td align='center'  bgcolor="#ECEEF0"><a href="menu_central.php">VOLVER</a></span>    <span align="right"> <a href="logout.php">SALIR</a></span></td>      </tr>    </table>    </form> 
Como dice Lair aparentemente estas intentando mandarlo por GET, pero aun asi te falta el valor en el archivo EditaEmp1.php

Tienes que Cambiar

--- Código: PHP ---<form id='EditaEmp1' name='form1' method='POST' action='grabau.php?Nombre_emp'> 
Por

--- Código: PHP ---<form id='EditaEmp1' name='form1' method='POST' action='grabau.php?Nombre_emp='.$Nombre_emp> 

y en grabau.php


--- Código: PHP --- $Nombre_emp=$_POST["Nombre_emp"]; 
Por


--- Código: PHP --- $Nombre_emp=$_GET["Nombre_emp"]; 
Otra solucion "rapida" es agregando el valor como un campo oculto (si no quieres que se vea)

EditaEmp1.php


--- Código: PHP ---<table width="800" border="1"  bordercolor="#CCCCCC"  align="center" cellpadding="10" cellspacing="0">    <form id='EditaEmp1' name='form1' method='POST' action='grabau.php'>        <tr>        <td colspan='2' bgcolor="#ECEEF0"><div align='center'>        <p><span class="Estilo1">Editar Datos de la Empresa: <? echo $Nombre_emp; ?></span><br/>       <!-- ------- Aqui se agrega el valor de $Nombre_emp en un campo oculto ------------------------ -->          <input name='Nombre_emp' value='<? echo $Nombre_emp ?>' type='hidden' />       <!-- ------ /Aqui se agrega el valor de $Nombre_emp en un campo oculto ----------------------- -->        </p>        </div></td>        </tr>        <tr><td>Rut :</td><td><span>        <input name='rut1' value='<? echo $rut1 ?>' type='text' size='10' maxlength='9' />         -         <input name='dig' value='<? echo $dig ?>' type='text' size='1' maxlength='2' />        </span>        </td></tr><tr><td>Telefono :</td><td><span>        <input name='tel' value='<? echo $tel ?>' type='text' size='10' maxlength='10' />        </span>        </td></tr><tr><td>Dirección :</td><td><span>        <input name='dir' value='<? echo $dir ?>' type='text' size='65' maxlength='150' /></span></td>        </tr>        <br/>        <tr>        <td colspan='2' align='center' bgcolor="#ECEEF0">        <input name='Guardar' type='submit' value='Guardar' /></td>        </tr>        <tr>        <td colspan='2' valign='top'> </td>        </tr>    </form></table>  
De esta manera entonces si en grabau.php puedes usar


--- Código: PHP --- $Nombre_emp=$_POST["Nombre_emp"]; 

Saludos

Kataky:
Gracias Lair y F_Tanori por tratar de ayudarme pero he sido muy metodica con todas las instrucciones que me han dado y no he podido solucionar mi problema.

Sé que el problema se produce cuando grabau.php llama a la función y por alguno de esos misterios de la informática la función no recibe la variable $Nombre_emp pero si todas las demás. Me he dado cuenta que cuando tengo más de 3 llamados de script (EditaEmp.php ---> EditaEmp1.php ---> grabau.php ---> grabaru() ) éste último se marea y no quiere saber nada de la variable, en cambio al crear una nueva empresa o al eliminarla uso 1 script menos y todo funciona de maravillas.

Ahora, buscando otro camino, mi duda es ¿cómo selecciono y muestro en la misma página los datos de la empresa para modificarlos? (en VB era muy fácil) .

Esto de ser autodidacta en PHP me está estresando... :brickwall: , pero no me la puede ganar y el problema es que como me meti en un forro (la necesidad tiene cara de hereje), ya estoy contra el tiempo.

Mil gracias por su ayuda y pasciencia...

lair:
Mira te voy a pasar un pequeño ejemplo en el que uso tanto get como post:

Archivo de conexion conexion.php:

--- Código: PHP ---<?php    function conexion(){        $host=mysql_connect("localhost","root","") or die("Error al conectar al servidor");            $connect=mysql_select_db("ext") or die("Error al conectar con la base de datos");            return $host;    }?> Index (Lista los registros) index.php:

--- Código: PHP ---<html><head>    <title>Pagina de prueba</title></head><body><?php    include 'conexion.php';    $link=conexion();    echo("        <table border='1'>            <tr>                <td>Nombre</td>                <td>Direccion</td>                <td colspan='2'>username</td>            </tr>    ");    $result=mysql_query("select * from usuarios");    while($reg=mysql_fetch_array($result)){        echo("            <tr>                <td>".$reg['nombre']."</td>                <td>".$reg['direccion']."</td>                <td>".$reg['username']."</td>                //aqui los datos son enviador por GET                <td><a href='modificar.php?id=".$reg['id']."'>Modificar</a></td>            </tr>        ");    }    echo("</table>");?></body></html> Vista de Modificacion modificar.php:

--- Código: PHP ---<?php    include 'conexion.php';    $link=conexion();     //Por tanto aqui tenemos que recibirlos con GET    $id=$_GET['id'];     $registro=mysql_query("select * from usuarios where id='$id'");    $reg=mysql_fetch_array($registro);    //desde este formulario los datos ahora se envian por POST    echo("        <form id form='form1' method='post' action='reg_us.php'>            ID: <input name='id' type='text' value='".$reg['id']."' readonly='true'><br>            Nombre: <input name='nom' type='text' value='".$reg['nombre']."'><br>            A. Paterno: <input name='a_p' type='text' value='".$reg['paterno']."'><br>            A. Materno: <input name='a_m' type='text' value='".$reg['materno']."'><br>            Fecha de Nacimiento: <input name='fna' type='text' value='".$reg['fnacimiento']."'><br>            Direccion: <input name='dir' type='text' value='".$reg['direccion']."'><br>            Telefono: <input name='tel' type='text' value='".$reg['telefono']."'><br>            e-Mail: <input name='mail' type='text' value='".$reg['mail']."'><br>            Nombre de Usuario: <input name='user' type='text' value='".$reg['username']."'><br>            Contraseña: <input name='pass' type='text' value='".$reg['password']."'><br>            <input type='submit' value='Modificar'>        </form>    ");    ?> archivo de modificacion reg_us.php:

--- Código: PHP ---<?php    include 'conexion.php';    $link=conexion();    //por lo que aqui es necesario recibirlos con POST    $id=$_POST['id'];    $nombre=$_POST['nom'];    $materno=$_POST['a_m'];    $paterno=$_POST['a_p'];    $nacimiento=$_POST['fna'];    $direc=$_POST['dir'];    $tele=$_POST['tel'];    $email=$_POST['mail'];    $usuario=$_POST['user'];    $contra=$_POST['pass'];    if(mysql_query("update usuarios set nombre='$nombre', materno='$materno', paterno='$paterno', fnacimiento='$nacimiento', direccion='$direc', telefono='$tele', mail='$email', username='$usuario', password='$contra' where id='$id'")){        echo("Registro Modificado");    }else{        echo("Error al Modificar el Registro");    }?> y mi base de datos:

--- Código: SQL ---/* MySQL Data Transfer Source Host: localhost Source Database: ext Target Host: localhost Target Database: ext Date: 10/06/2009 11:43:27 */   SET FOREIGN_KEY_CHECKS=0;   -- ---------------------------- -- Table structure for usuarios -- ---------------------------- DROP TABLE IF EXISTS `usuarios`; CREATE TABLE `usuarios` (  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,  `nombre` VARCHAR(100) NOT NULL,  `paterno` VARCHAR(100) NOT NULL,  `materno` VARCHAR(100) NOT NULL,  `fnacimiento` DATE NOT NULL,  `direccion` VARCHAR(100) NOT NULL,  `telefono` CHAR(10) DEFAULT NULL,  `mail` VARCHAR(100) DEFAULT NULL,  `username` CHAR(50) NOT NULL,  `password` CHAR(50) NOT NULL,  PRIMARY KEY  (`id`)) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;   -- ---------------------------- -- Records  -- ---------------------------- INSERT INTO `usuarios` VALUES ('1', 'Lair', 'Apellido Paterno', 'Apellido Materno', '2009-06-10', '3', '3', '3', '3', '3'); INSERT INTO `usuarios` VALUES ('2', 'aaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbb', 'ccccccccccccccccccccc', '0000-00-00', 'ddddddddddddddddddddddddd', 'eeeeeeeeee', 'fffffffffffffffffffffffffffffffffffffffffffffffff', 'gggggggggggggggggggggggggggggggggggg', 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh');  espero y te sean de ayuda, suerte y ya sabes cualquier problema aqui estamos

F_Tanori:
Un ejemplo 'novato' para que vayas viendo ...


--- Código: PHP ---<?php      if (isset($_POST['enviar'])){          $dato = $_POST['dato'];          echo "<h1>$dato</h1>";     }else{        echo "<form action='".$_SERVER['PHP_SELF']."' method='POST'>";        echo "<label for='dato'>Dato:</label><input name='dato' type='text' id='dato' value="" size=17>";        echo "<input type='submit' name='enviar' id='enviar' value='Grabar' >";        echo "</form>";     } ?> 
pruebalo a ver si te sirve

Saludos

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa