Foros del Web » Programando para Internet » PHP »

Formulario, variable session, metodo post

Estas en el tema de Formulario, variable session, metodo post en el foro de PHP en Foros del Web. Mi saludo a toda la comunidad, acá les presento mi código: lista_proveedores.php @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <html>     <head>       ...
  #1 (permalink)  
Antiguo 03/01/2013, 13:28
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Formulario, variable session, metodo post

Mi saludo a toda la comunidad, acá les presento mi código:

lista_proveedores.php
Código PHP:
Ver original
  1. <html>
  2.     <head>
  3.         <!--<link rel="stylesheet" type="text/css" href="estilo_1.css" />-->
  4.         <link rel="stylesheet" type="text/css" href="estilo_lista.css" />
  5.     </head>
  6.         <body>
  7.  
  8.     <!-- Listado de Proveedores -->
  9.             <?
  10.             require_once("../conexion/conexion.php");
  11.             $sql="SELECT proveedores.nombre, proveedores.rif, proveedores.telefono, proveedores.correo, contactos.nombre_cont, contactos.telefono_cont FROM proveedores INNER JOIN contactos ON contactos.proveedor_id = proveedores.id";
  12.             $result=mysql_query($sql,$idconn);
  13.              if($result)  
  14.  {
  15.    echo "<table><tr><th>nombre</th><th>rif</th><th>tel&eacute;fono</th><th>correo</th><th>contacto</th><th>tlf contacto</th><th>&nbsp;</th></tr>";
  16.    while($fila=mysql_fetch_array($result))
  17.    {
  18.     echo "<tr><td>".$fila['nombre']."</td><td>".$fila['rif']."</td><td>".$fila['telefono']."</td><td>".$fila['correo']."</td><td>".$fila['nombre_cont']."</td><td>".$fila['telefono_cont']."</td><td><a href=./form_modificar.php?rif=".$fila["rif"]." target='_blank'>modificar</a></td></tr>";
  19.    }
  20.    echo "</table>";
  21.  }
  22.             ?>
  23.         </body>
  24. </html>

como pudieron ver aquí listo los proveedores y por GET envio el rif por medio del enlace modificar, (funciona perfectamente)

form_modificar.php
Código PHP:
Ver original
  1. </table>
  2.  
  3.         <table class="contenido">
  4.         <tr><td class="modulos"><dl>
  5.             <dt><a href="../modulo3_compras/form_compras.php" class="menus">compras</a><dt>
  6.             <dt><a href="../modulo1_proveedores/form_proveedores.php" class="menus">proveedores</a><dt>
  7.             <dt><a href="../modulo2_productos/form_productos.php" class="menus">productos</a><dt>
  8.             <dt><a href="../modulo7_servicios/form_servicios.php" class="menus">servicios</a><dt>
  9.             <dt><a href="../modulo5_facturacion/form_facturacion.php" class="menus">ventas</a><dt>
  10.             <dt><a href="#" class="menus">reportes</a><dt>
  11.             <dt><a href="#" class="menus">usuarios</a><dt>
  12.             <dt><a href="../modulo6_ctas_por_pagar/form_ctasxpagar.php" class="menus">ctas por pagar</a><dt>
  13.             </dl></td>
  14.  
  15.         <td class="form">
  16.  
  17.     <?
  18.     session_start();
  19.     require_once("../conexion/conexion.php");
  20.  
  21.            
  22.         if(isset($_GET['rif']))
  23.             $rif=$_GET['rif'];
  24.            
  25.             $_SESSION['rif'] = $rif;
  26.            
  27.             $sql3="select proveedores.rif,proveedores.nombre,proveedores.telefono,proveedores.direccion,proveedores.correo,nombre_cont,telefono_cont,correo_cont from contactos inner join proveedores on proveedores.id=contactos.proveedor_id where proveedores.rif=$rif";
  28.             $result3=mysql_query($sql3,$idconn);
  29.             if($result3>0)
  30.             {
  31.                 while($fila=mysql_fetch_array($result3))
  32.                 {
  33.     ?>
  34.                 <form name="modificar_proveedor" method="post" action="modificar.php">
  35.                 <fieldset><legend>modificar datos del proveedor</legend>
  36.                 <table class="form">
  37.                 <tr><th><label>nombre:</label></th>
  38.                 <td><input type="text" name="nombre" size="20" value="<?php echo $fila['nombre']; ?>" readonly="true"/></td>
  39.                 <th><label>rif:</label></th>
  40.                 <td><input type="text" name="rif" size="20" value="<?php echo $fila['rif']; ?>" readonly="true"/></td>
  41.                 </tr>
  42.                 <tr><th><label>tel&eacute;fono:</label></th>
  43.                 <td><input type="text" name="telefono" size="20" value="<?php echo $fila['telefono']; ?>"/></td>
  44.                 <th><label>correo:</label></th>
  45.                 <td><input type="text" name="correo" size="20" value="<?php echo $fila['correo']; ?>"/></td>
  46.                 </tr>
  47.                 <tr><th><label>direcci&oacute;n:</label></th>
  48.                 <td colspan="3"><input type="text" name="direccion" size="50" value="<?php echo $fila['direccion']; ?>"/></td>
  49.                 </tr>
  50.                 <tr><th><label>contacto:</label></th>
  51.                 <td><input type="text" name="nombrecont" size="25" value="<?php echo $fila['nombre_cont']; ?>"/></td>  
  52.                 <th><label>tel&eacute;fono:</label></th>
  53.                 <td><input type="text" name="telefonocont" size="20" value="<?php echo $fila['telefono_cont']; ?>"/></td>  
  54.                 </tr>
  55.                 <tr><th><label>correo:</label></th>
  56.                 <td colspan="3"><input type="text" name="correocont" size="20" value="<?php echo $fila['correo_cont']; ?>"/></td>
  57.  
  58.     <?}        
  59.             }?>
  60.             </tr>
  61.             </table></fieldset>
  62.                
  63.             <fieldset class="boton">
  64.             <button type="submit" name="guardar">
  65.                 <img src="guardar.png"/>
  66.             guardar
  67.             </button>
  68.             </fieldset>
  69.                
  70.                 </form></td></tr>   </table>
Aquí se muestro los datos del proveedor seleecionado, los cuales pueden ser modificados y se guardan pulsando el botón guardar

Ahora bien, el problema creo yo que es aqui:

modificar.php
Código PHP:
Ver original
  1. <?
  2.     session_start();
  3.     require_once("../conexion/conexion.php");
  4.  
  5.    
  6.             $sql='update contactos inner join proveedores on proveedores.id=contactos.proveedor_id set proveedores.telefono='.$_POST["telefono"].', proveedores.direccion='.$_POST["direccion"].', proveedores.correo='.$_POST["correo"].', nombre_cont='.$_POST["nombrecont"].',telefono_cont='.$_POST["telefonocont"].', correo_cont='.$_POST["correocont"].' where proveedores.rif='.$_SESSION["rif"].'';
  7.             $result=mysql_query($sql,$idconn);
  8.  
  9. mysql_close($idconn);
  10. header("location:form_proveedores.php");?>

al darle guardar deberían actualizarse los datos del proveedor, pero en vez de eso me redirecciona al formulario principal de los proveedores sin efectuar cambio alguno... La sentencia SQL ya la probé directamente en el phpmyadmin y funciona a la perfección.

Le he dado vueltas y vueltas al código y no hallo con la solución, Espero puedan ayudarme. Gracias de antemano...
  #2 (permalink)  
Antiguo 03/01/2013, 14:06
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 3 meses
Puntos: 26
Respuesta: Formulario, variable session, metodo post

Lo que pasa es que te redireccionara se haga o no la actualizacion, puedes hacer eso:

Código PHP:
Ver original
  1. <?php
  2. $sql = mysql_query("query",$idconn) ;
  3.  
  4. if($sql){ //si la consulta se ejecuto con exito, redireccionare.
  5.    header("location:form_proveedores.php");
  6. }else{
  7.   echo "Hubo un error en la actualizacion: ".mysql_error();
  8. //me entrega el error de la consulta (si es que existe)
  9. }
  10. ?>
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #3 (permalink)  
Antiguo 03/01/2013, 15:33
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Formulario, variable session, metodo post

Muchas gracias, me aparece el siguiente error:

Hubo un error en la actualizacion: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@correo1, nombre_cont=pepe,telefono_cont=0414654405, correo_cont=correo@correo3 ' at line 1

No entiendo de verdad...
  #4 (permalink)  
Antiguo 03/01/2013, 15:39
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Formulario, variable session, metodo post

Solucionado, el error estaba en que debia encerrar las variables $_POST entre comillas dobles tambien, quedo asi la sentencia:

Código PHP:
Ver original
  1. <?
  2. $sql='update contactos inner join proveedores on proveedores.id=contactos.proveedor_id set proveedores.telefono="'.$_POST["telefono"].'", proveedores.direccion="'.$_POST["direccion"].'", proveedores.correo="'.$_POST["correo"].'", nombre_cont="'.$_POST["nombrecont"].'",telefono_cont="'.$_POST["telefonocont"].'", correo_cont="'.$_POST["correocont"].'" where proveedores.rif="'.$_SESSION["rif"].'"';
  3. ?>

Muchísimas gracias por la ayuda prestada!!!

Etiquetas: formulario, html, metodo, mysql, post, session, sql, variables, usuarios
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 20:30.