Foros del Web » Programando para Internet » PHP »

No he podido editar un registro

Estas en el tema de No he podido editar un registro en el foro de PHP en Foros del Web. Hola a todos, tengo un registro que no me ha sido posible editar. Esto lo he hecho un sinnumero de veces ya que es algo ...
  #1 (permalink)  
Antiguo 14/11/2018, 18:55
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Exclamación No he podido editar un registro

Hola a todos, tengo un registro que no me ha sido posible editar. Esto lo he hecho un sinnumero de veces ya que es algo basico en php, pero la verdad con este registro no me ha sido posible. Este es el formulario en html que llama los datos de la base de datos

Código HTML:
Ver original
  1. <form action="incoming2.php" method="POST">
  2.                        
  3.                         <div class="row">  
  4.                            
  5.                            
  6.                             <?php
  7.                            $id=$_GET['invoice'];
  8.                            include('config/connect.php');
  9.                            $result = $db->prepare("SELECT * FROM sales_order WHERE invoice= :userid");
  10.                             $result->bindParam(':userid', $id);
  11.                             $result->execute();
  12.                             for($i=1; $row = $result->fetch(); $i++){
  13.                              ?>
  14.                             <tr>
  15.                             <td hidden><?php echo $row['product']; ?></td>
  16.                             <tr><td><?php echo $row['gen_name']; ?></td>
  17.                                
  18.                                 <td><input type="text" name="price" value="<?php echo $row['price']; ?>"> </td>
  19.                                
  20.                                 <td align="center">
  21.                                    
  22.                                     <input type="text" name="qty" value="<?php echo $row['qty']; ?>">                                  
  23.                                     </td>
  24.                                
  25.                                 <td><input type="text" name="amount" value="<?php echo $row['amount']; ?>" readonly></td>
  26.                                
  27.                                
  28.                                 <td><?php echo $row['profit']; ?>,00</td><td><a href="delete.php?id=<?php echo $row['transaction_id']; ?>&invoice=<?php echo $_GET['invoice']; ?>&dle=<?php echo $_GET['id']; ?>&qty=<?php echo $row['qty'];?>&code=<?php echo $row['product'];?>" title="Quitar producto"><img src="srcimg/borrar.png" width="20px"></a></td></tr>
  29.                             <?php
  30.                                }
  31.                            ?>
  32.                                
  33.                                 <tr>
  34.                                     <td colspan="6">
  35.                                        
  36.                                 <input type="hidden" name="invoice" value="<?php echo $_GET['invoice']; ?>" />        
  37.                                 <button type="submit" class="btn btn-success" style="width: 200px; height:35px; margin-top:-5px;" /><img src="srcimg/carrobtn.png" width="20px">&nbsp;<b> Actualizar</b></button>
  38.                                     </td>
  39.                                 </tr>
  40.                             </form>

y este es el Script PHP que recibe los datos y los procesa, pero no he podido lograrlo, la tabla es sales_order y esta graba cada producto en un id nuevo, tal vez sea por eso . Lo que hago es tomar el por el invoice de venta que es unico en cada venta:

Código PHP:

<?php
session_start
();
//print_r($_POST);
require_once("config/conectan.php");
$sql "update sales_order set price = '".$_POST["price"]."',qty = '".$_POST["qty"]."',amount = '".$_POST["amount"]."',' where invoice='".$_POST["invoice"]."'";
//echo $sql;
$res=mysql_query($sql,$conexion);

header("location: sales.php?id=cash&invoice=".$_POST["invoice"]."");
?>
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #2 (permalink)  
Antiguo 16/11/2018, 07:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: No he podido editar un registro

Antes de hacer la redirección, necesitas comprobar si se pudo guardar los datos. Puedes utilizar una condición:

Código PHP:
Ver original
  1. if ($res){
  2.     header('Location: sales.php?id=cash&invoice=' . $_POST['invoice']);
  3. }
  4. else{
  5.     echo mysql_errno($conexion) . ": " . mysql_error($conexion);
  6. }

Si el proceso de guardado fue exitoso, se hará la redirección; caso contrario, se mostrará el código y mensaje de error generado por MySQL. Por cierto, si en el primer archivo estás usando la extensión PDO, sería ideal que fuera así en los demás archivos, como en el que realizas el guardado de la información.

En caso de que no se produjera un error en el guardado y aun así no consiguieras actualizar los datos, puedes probar imprimiendo la consulta SQL y probándola en el administrador de bases de datos que uses, como puede ser phpmyadmin.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 16/11/2018, 09:12
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: No he podido editar un registro

Amigo, hice lo que dijiste y me sale este mensaje:

1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' where invoice='RS-2829227'' at line 1
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #4 (permalink)  
Antiguo 16/11/2018, 09:25
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: No he podido editar un registro

El error esta en la linea del SQL

$sql = "update sales_order set price = '".$_POST["price"]."',qty = '".$_POST["qty"]."',amount = '".$_POST["amount"]."',' where invoice='".$_POST["invoice"]."'";

pruebala de esta manera:

$sql = "UPDATE sales_order SET price = '".$_POST["price"]."',qty = '".$_POST["qty"]."',amount = '".$_POST["amount"]."' WHERE invoice='".$_POST["invoice"]."'";
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #5 (permalink)  
Antiguo 16/11/2018, 09:34
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: No he podido editar un registro

Cita:
Iniciado por petit89 Ver Mensaje
El error esta en la linea del SQL

$sql = "update sales_order set price = '".$_POST["price"]."',qty = '".$_POST["qty"]."',amount = '".$_POST["amount"]."',' where invoice='".$_POST["invoice"]."'";

pruebala de esta manera:

$sql = "UPDATE sales_order SET price = '".$_POST["price"]."',qty = '".$_POST["qty"]."',amount = '".$_POST["amount"]."' WHERE invoice='".$_POST["invoice"]."'";
Muchas gracias asi me funiono correctamente, voy a revisar si noo me sale otro error al sumar todos los valores
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #6 (permalink)  
Antiguo 16/11/2018, 10:57
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: No he podido editar un registro

Amigos, la ayuda de petit89 funciono muy bien, pero ahora tengo otro inconveniente. Eso que hice es para un sistema de ventas, es para modificar los valores y cantidades de produtos cuando ya se van a generar la venta. Resulta que cuando agrego el primer producto y cambio el valor o la cantidad por medio de un script de javascrit funciona correctamente, pero cuando agrego el segundo producto ya no deja cambiar los datos, pues no funciona el script y el valor del primer producto lo toma el segundo. Voy a enviarles el codigo para que me ayuden a ver en que esty fallando por favor.

Esto va en el head

Código Javascript:
Ver original
  1. <script>
  2.     function multiplicar(){
  3.       m1 = document.getElementById("txt2").value;
  4.       m2 = document.getElementById("txt11").value;
  5.       r = m1*m2;
  6.       document.getElementById("resultado").value = r;
  7.     }
  8. </script>
  9.     <script>
  10.             function sum() {
  11.             var txtFirstNumberValue = document.getElementById('txt1').value;
  12.             var txtSecondNumberValue = document.getElementById('txt2').value;
  13.             var result = parseInt(txtFirstNumberValue) - parseInt(txtSecondNumberValue);
  14.             if (!isNaN(result)) {
  15.                 document.getElementById('txt3').value = result;
  16.                
  17.             }
  18.            
  19.              var txtFirstNumberValue = document.getElementById('txt11').value;
  20.             var result = parseInt(txtFirstNumberValue);
  21.             if (!isNaN(result)) {
  22.                 document.getElementById('txt22').value = result;               
  23.             }
  24.            
  25.              var txtFirstNumberValue = document.getElementById('txt11').value;
  26.             var txtSecondNumberValue = document.getElementById('txt33').value;
  27.             var result = parseInt(txtFirstNumberValue) + parseInt(txtSecondNumberValue);
  28.             if (!isNaN(result)) {
  29.                 document.getElementById('txt55').value = result;
  30.                
  31.             }
  32.            
  33.              var txtFirstNumberValue = document.getElementById('txt4').value;
  34.              var result = parseInt(txtFirstNumberValue);
  35.             if (!isNaN(result)) {
  36.                 document.getElementById('txt5').value = result;
  37.                 }
  38.            
  39.             }
  40.         </script>

Y estos son los 3 campos que hacen las operaciones de precio, cantidad y total

Código PHP:
Ver original
  1. <td><input type="text" id="txt2" name="price" value="<?php echo $row['price']; ?>"> </td>
  2.                                
  3.                                 <td align="center">
  4.                                    
  5.                                     <input type="text" name="qty" value="<?php echo $row['qty']; ?>" id="txt11" value=0 onChange="multiplicar();" onkeyup="sum();">                                  
  6.                                     </td>
  7.                                
  8.                                 <td><input type="text" name="amount" value="<?php echo $row['amount']; ?>" id="resultado" readonly></td>

Agradezco por favor que me colaboren con esto. QUé debo haer para que pueda modificar todos los productos ya sean en precio o cantidad
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #7 (permalink)  
Antiguo 16/11/2018, 11:01
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: No he podido editar un registro

Este es el sistema que tengo

__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS

Etiquetas: html, mysql, query, registro, select, tabla
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 19:37.