Foros del Web » Programando para Internet » PHP »

Update php y Mysql

Estas en el tema de Update php y Mysql en el foro de PHP en Foros del Web. Buenos días! Estoy aprendiendo php y quiero actualizar la informacion de un formulario que tiene un numero de id que es numeroorden. Consigo recuperar la ...
  #1 (permalink)  
Antiguo 27/05/2014, 07:28
 
Fecha de Ingreso: enero-2014
Ubicación: USA
Mensajes: 50
Antigüedad: 10 años, 3 meses
Puntos: 0
Pregunta Update php y Mysql

Buenos días!


Estoy aprendiendo php y quiero actualizar la informacion de un formulario que tiene un numero de id que es numeroorden. Consigo recuperar la informacion de la base de datos pero cuando presiono el boton de modificar me sale que las variables no han sido definidas. No sé por que pasa esto si en la primero consulta obtuve los valores de la variable que estoy enviando. Agradezco de antemano la ayuda que me puedan brindar al respecto.



Saludos!!

Código PHP:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CTE Modificar Registro</title>
<?php

include "conexiondblocal.php";
if(!isset(
$_POST['submit'])){
$serial mysqli_real_escape_string($con,$_GET['numeroorden']);    
$qry="SELECT * FROM producto  WHERE numeroorden = $_GET[numeroorden]";
$muestra mysqli_query($con,$qry);
$person=$muestra->fetch_array();
}
?>
<style type="text/css">
#cuerpo form table {
    text-align: center;
}
</style>
<link href="../CTE/estilospaginas.css" rel="stylesheet" type="text/css">
<style type="text/css">
body {
    background-color: #FFF;
}
</style>
</head>
<body>
<div id="cuerpo">
<script>
   $( "#entregaacliente,#fecharecepcion").datepicker();
 
  </script>
  
 <div id="formulario">
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
 
  
      <div> <label for="inputproducto">Producto</label>  <input name="inputproducto"type="text" class="tabla" id="producto" value = "<?php echo $person['producto']; ?>" /> 
    </div>
      
      
            <div> <label for="inputproducto">Orden número</label>  <input name="inputcedula"type="text" class="tabla" id="inputcedula" value = "<?php echo $person['cedula']; ?>" /> 
    </div>
      
      
           <div> <label for="inputtipodeservicio">Cedula</label>  <input name="inputtipodeservicio"type="text" id="inputtipodeservicio" value = "<?php echo $person['tipodeservicio']; ?>" /> 
    </div>

        <div> <label for="inputtipodeservicio">Tipo de Servicio</label>  <input name="inputtipodeservicio"type="text" id="inputtipodeservicio" value = "<?php echo $person['tipodeservicio']; ?>" /> 
    </div>
       
         <div> <label for="inputnumeromarca">Numero de Marca</label>  <input name="inputnumeromarca"type="text" id="inputnumeromarca" value = "<?php echo $person['numeromarca']; ?>" /> 
    </div>
         
          <div> <label for="inputmarca">Marca</label>  <input name="inputmarca"type="text" id="inputmarca" value = "<?php echo $person['marca']; ?>" /> 
    </div>    
     
     
    <div> <label for="inputtelefono">Modelo</label>  <input name="inputmodelo"type="text" id="inputmodelo" value = "<?php echo $person['modelo']; ?>" /> </div>  
    
    <div> <label for="inputproducto">Almacen</label>  <input name="inputalmacen"type="text" id="inputalmacen" value = "<?php echo $person['almacen']; ?>" /> </div>
    
 
          <div> <label for="inputmarca">Dano</label>  <input name="inputdano"type="text" id="inputdano" value = "<?php echo $person['dano']; ?>" /> </div>  
       
       
       
       <div> <label for="inputfecharecepcion">Fecha de Recepción</label>  <input name="inputfecharecepcion"type="text" id="inputfecharecepcion" value = "<?php echo $person['fecharecepcion']; ?>" /> 
    </div>     
       
    
         <div> <label for="inputfecharecepcion">Técnico</label>
          <textarea name="inputtecnico" cols="30" id="inputtecnico"  /><?php echo $person['tecnico']; ?>
    </textarea> </div>
     
    <div> <label for="inputestado">Estado</label>  <select name="inputestado"type="text"value = "<?php echo $person['estado']; ?>" id="inputestado"> <option>Reparado </option>
            <option>Pendiente </option>
            <option>Entregado</option>
          </select> </div>
    
  <div> <label for="inputsede">Sede</label>  <select name="inputsede"value = "<?php echo $person['sede']; ?>"type="text" id="inputsede"> <option>Centro </option>
            <option>Calipso </option>
          </select>  </div>
          
          
        <div> <label for="inputentregaacliente">Entrega a Cliente</label>  <input name="inputentregaacliente"type="text" id="inputentregaacliente" value = "<?php echo $person['entregaacliente']; ?>" /> </div> 
    
         
 <input type="hidden" name="inputnumeroorden" value="<?php echo $_GET['numeroorden'];?>"/> 
 
       
        <div id="enviarboton">
       
        <input type = "submit" name = "submit" value= "Modificar"/>
        
        </div>
         
    
 
  
</form>

</div>


<div id="estilopagina">

</div>
<?php
if (isset($_POST ['submit'])){
$serial mysqli_real_escape_string($con,$_POST['numeroorden']);    
$producto"UPDATE producto SET producto = '$_POST[inputproducto]',cedula='$_POST[inputcedula]',tipodeservicio= '$_POST[inputtipodeservicio]',numeromarca= '$_POST[inputnumeromarca]',marca= '$_POST[inputmarca]',modelo= '$_POST[inputmodelo]',almacen= '$_POST[inputalmacen]',dano= '$_POST[inputdano]',fecharecepcion= '$_POST[inputfecharecepcion]',tecnico = '$_POST[inputtecnico]',estado='$_POST[inputestado]',sede='$_POST[inputsede]',entregaacliente='$_POST[inputentregaacliente]',numeroorden='$_POST[inputnumeroorden] WHERE numeroorden= $_GET[inputnumeroorden]";
mysqli_query($con,$producto);
echo 
"El usuario ha sido modificado";


?>
</body>
</html>
  #2 (permalink)  
Antiguo 27/05/2014, 07:37
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Update php y Mysql

Acostumbrese a manejar asi las variables en las consultas..es mejor

Código PHP:

$producto
"UPDATE producto SET producto = '".$_POST['inputproducto']."'"
lo otro apenas verifica si recibe el post... hagase esto para mirar que esta llegando...


Código PHP:
echo "<pre>":var_dump($_POST);"</pre>"
  #3 (permalink)  
Antiguo 27/05/2014, 09:03
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Update php y Mysql

Cita:
Iniciado por helacer Ver Mensaje
Acostumbrese a manejar asi las variables en las consultas..es mejor

Código PHP:

$producto
"UPDATE producto SET producto = '".$_POST['inputproducto']."'"
lo otro apenas verifica si recibe el post... hagase esto para mirar que esta llegando...


Código PHP:
echo "<pre>":var_dump($_POST);"</pre>"
Para mi es mas prolijo asi

Código PHP:
 "UPDATE producto SET producto = '{$_POST['inputproducto']}'" 
Pero lo ideal seria que hagas bind a las variables.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #4 (permalink)  
Antiguo 28/05/2014, 07:16
 
Fecha de Ingreso: enero-2014
Ubicación: USA
Mensajes: 50
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Update php y Mysql

Muchas gracias por sus respuestas!


Aún no me funciona el código. Cuando envío el formulario me sale que la variable person no ha sido definida. Sin embargo con ésta es que recojo los datos para poblar la tabla, cuando le doy enviar los me salen todos los erros del formulario diciendo que la variable no ha sido definida. Agradezco su ayuda.
  #5 (permalink)  
Antiguo 28/05/2014, 07:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Update php y Mysql

Bueno, por lo pronto en esta parte:
Código PHP:
Ver original
  1. if (isset($_POST ['submit'])){
  2. $serial = mysqli_real_escape_string($con,$_POST['numeroorden']);    
  3. $producto= "UPDATE producto SET producto = '$_POST[inputproducto]',cedula='$_POST[inputcedula]',tipodeservicio= '$_POST[inputtipodeservicio]',numeromarca= '$_POST[inputnumeromarca]',marca= '$_POST[inputmarca]',modelo= '$_POST[inputmodelo]',almacen= '$_POST[inputalmacen]',dano= '$_POST[inputdano]',fecharecepcion= '$_POST[inputfecharecepcion]',tecnico = '$_POST[inputtecnico]',estado='$_POST[inputestado]',sede='$_POST[inputsede]',entregaacliente='$_POST[inputentregaacliente]',numeroorden='$_POST[inputnumeroorden] WHERE numeroorden= $_GET[inputnumeroorden]";
  4. mysqli_query($con,$producto);
  5. echo "El usuario ha sido modificado";
tienes un error, porque falta un apostrofe en el último campo del set. Eso sin duda está disparando un error de sintaxis, pero como no lo capturas, ni te enteras.

Debería quedar así:
Código SQL:
Ver original
  1. UPDATE producto
  2.    SET producto = '$_POST[inputproducto]',
  3.        cedula = '$_POST[inputcedula]',
  4.        tipodeservicio = '$_POST[inputtipodeservicio]',
  5.        numeromarca = '$_POST[inputnumeromarca]',
  6.        marca = '$_POST[inputmarca]',
  7.        modelo = '$_POST[inputmodelo]',
  8.        almacen = '$_POST[inputalmacen]',
  9.        dano = '$_POST[inputdano]',
  10.        fecharecepcion = '$_POST[inputfecharecepcion]',
  11.        tecnico = '$_POST[inputtecnico]',
  12.        estado = '$_POST[inputestado]',
  13.        sede = '$_POST[inputsede]',
  14.        entregaacliente = '$_POST[inputentregaacliente]',
  15.        numeroorden = '$_POST[inputnumeroorden]'
  16.  WHERE numeroorden = $_GET[inputnumeroorden];

Un consejo, hno hagas sentencias SQL como una laaaarga cadena, porque se te escaparán errores de ese tipo con facilidad.
Trata de escribir estrucuradamente. Facilita el analisis del código y la busqueda de errores.

En cuanto a lo de $person, mas o menos lo mismo: No validas si devuelve algo la query, por lo que bien podría estar fallando.
Además, esto:
Código PHP:
Ver original
  1. if(!isset($_POST['submit'])){
  2. $serial = mysqli_real_escape_string($con,$_GET['numeroorden']);    
  3. $qry="SELECT * FROM producto  WHERE numeroorden = $_GET[numeroorden]";
  4. $muestra = mysqli_query($con,$qry);
  5. $person=$muestra->fetch_array();
  6. }
¿No debería ser:
Código PHP:
Ver original
  1. if(!isset($_POST['submit'])){
  2. $serial = mysqli_real_escape_string($con,$_GET['numeroorden']);    
  3. $qry="SELECT * FROM producto  WHERE numeroorden = $serial"; // ¿Para que asignar la variable si no la usas?
  4. $muestra = mysqli_query($con,$qry);
  5. $person=$muestra->fetch_array();
  6. }
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 29/05/2014, 07:32
 
Fecha de Ingreso: enero-2014
Ubicación: USA
Mensajes: 50
Antigüedad: 10 años, 3 meses
Puntos: 0
Pregunta Respuesta: Update php y Mysql

Gracias por sus respuestas!

Aún no logro que mi código corra. Ya hice algunas de las modificaciones que me sugirieron. Sin embargo, cuando envío el formulario me sigue mostrando que la variable person no ha sido definida. Cabe aclarar que esta variable contiene la información recuperada en la primera consulta para poblar la tabla hasta ahí todo bien. Pero cuando oprimo el botón de modificar me sale un error en cada linea donde la varaible está. LA variable person recibe los valores por medio de GET desde otra página. Además cuando trato de re usar la variable serial en la última consulta me dice que tampoco está definida. No entiendo porque si ya lo hice al inicio del código. Si alguién me puede echar una manito le agradezco.


Saludos.

Adjunto la nueva version del código.


Código PHP:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CTE Modificar Registro</title>
<?php
include "conexiondblocal.php";
if(!isset(
$_POST['submit'])){
$serial mysqli_real_escape_string($con,$_GET['numeroorden']);    
$qry"SELECT * FROM producto  WHERE numeroorden = $serial";
$muestra mysqli_query($con,$qry);
$person=$muestra->fetch_array();
}
?>
<style type="text/css">
#cuerpo form table {
    text-align: center;
}
</style>
<link href="../CTE/estilospaginas.css" rel="stylesheet" type="text/css">
<style type="text/css">
body {
    background-color: #FFF;
}
</style>
</head>
<body>
<div id="cuerpo">
<script>
   $( "#entregaacliente,#fecharecepcion").datepicker();
 
  </script>
  
 <div id="formulario">
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
 
  
      <div> <label for="inputproducto">Producto</label>  <input name="inputproducto"type="text" class="tabla" id="producto" value = "<?php echo $person['producto']; ?>" /> 
    </div>
      
      
            <div> <label for="inputproducto">Orden número</label>  <input name="inputcedula"type="text" class="tabla" id="inputcedula" value = "<?php echo $person['cedula']; ?>" /> 
    </div>
      
      
           <div> <label for="inputtipodeservicio">Cedula</label>  <input name="inputtipodeservicio"type="text" id="inputtipodeservicio" value = "<?php echo $person['tipodeservicio']; ?>" /> 
    </div>

    
       
         <div> <label for="inputnumeromarca">Numero de Marca</label>  <input name="inputnumeromarca"type="text" id="inputnumeromarca" value = "<?php echo $person['numeromarca']; ?>" /> 
    </div>
         
          <div> <label for="inputmarca">Marca</label>  <input name="inputmarca"type="text" id="inputmarca" value = "<?php echo $person['marca']; ?>" /> 
    </div>    
     
     
    <div> <label for="inputtelefono">Modelo</label>  <input name="inputmodelo"type="text" id="inputmodelo" value = "<?php echo $person['modelo']; ?>" /> </div>  
    
    <div> <label for="inputproducto">Almacen</label>  <input name="inputalmacen"type="text" id="inputalmacen" value = "<?php echo $person['almacen']; ?>" /> </div>
    
 
          <div> <label for="inputmarca">Dano</label>  <input name="inputdano"type="text" id="inputdano" value = "<?php echo $person['dano']; ?>" /> </div>  
       
       
       
       <div> <label for="inputfecharecepcion">Fecha de Recepción</label>  <input name="inputfecharecepcion"type="text" id="inputfecharecepcion" value = "<?php echo $person['fecharecepcion']; ?>" /> 
    </div>     
       
    
         <div> <label for="inputfecharecepcion">Técnico</label>
          <textarea name="inputtecnico" cols="30" id="inputtecnico"  /><?php echo $person['tecnico']; ?>
    </textarea> </div>
     
    <div> <label for="inputestado">Estado</label>  <select name="inputestado"type="text"value = "<?php echo $person['estado']; ?>" id="inputestado"> <option>Reparado </option>
            <option>Pendiente </option>
            <option>Entregado</option>
          </select> </div>
    
  <div> <label for="inputsede">Sede</label>  <select name="inputsede"value = "<?php echo $person['sede']; ?>"type="text" id="inputsede"> <option>Centro </option>
            <option>Calipso </option>
          </select>  </div>
          
          
        <div> <label for="inputentregaacliente">Entrega a Cliente</label>  <input name="inputentregaacliente"type="text" id="inputentregaacliente" value = "<?php echo $person['entregaacliente']; ?>" /> </div> 
    
         
        <div id="enviarboton">
       
        <input type = "submit" name = "submit" value= "Modificar"/>
        
        </div>
        
 <input type="hidden" name="numeroorden" value="<?php echo $serial;?>"/> 
  
</form>

</div>

<?php
if (isset($_POST['submit'])){
$producto
"UPDATE producto 
 SET producto = '$_POST[inputproducto]',
       cedula = '$_POST[inputcedula]',
       tipodeservicio = '$_POST[inputtipodeservicio]',
       numeromarca = '$_POST[inputnumeromarca]',
       marca = '$_POST[inputmarca]',
       modelo = '$_POST[inputmodelo]',
       almacen = '$_POST[inputalmacen]',
       dano = '$_POST[inputdano]',
       fecharecepcion = '$_POST[inputfecharecepcion]',
       tecnico = '$_POST[inputtecnico]',
       estado = '$_POST[inputestado]',
       sede = '$_POST[inputsede]',
       entregaacliente = '$_POST[inputentregaacliente]',
     numeroorden = '$_POST[numeroorden]'
 WHERE numeroorden = $serial"
;
 
mysqli_query($con,$producto);

echo 
"El usuario ha sido modificado";


?>
</body>
</html>
  #7 (permalink)  
Antiguo 29/05/2014, 08:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Update php y Mysql

Sigues sin verificar si las ejecuciones d elas queries realmente están funcionando...
Lee el manual.

http://www.php.net/manual/es/mysqli.error.php

Ejemplo del manual:
Código PHP:
Ver original
  1. <?php
  2. $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
  3.  
  4. /* Comprueba la conexión */
  5. if ($mysqli->connect_errno) {
  6.     printf("Connect failed: %s\n", $mysqli->connect_error);
  7.     exit();
  8. }
  9.  
  10. if (!$mysqli->query("SET a=1")) {
  11.     printf("Errormessage: %s\n", $mysqli->error);
  12. }
  13.  
  14. /* Cierra la conexión */
  15. $mysqli->close();
  16. ?>
Es largo, tedioso y hartante. Peri SIEMPRE debes validar que las cosas hayan funcionado.
No asumas que anda, porque está bien escrito.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 29/05/2014, 10:57
 
Fecha de Ingreso: enero-2014
Ubicación: USA
Mensajes: 50
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Update php y Mysql

Muchas gracia!

Me pongo en esas.


Saludos!

Etiquetas: mysql, update
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 16:54.