Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Modificar contenido en BBDD

Estas en el tema de Modificar contenido en BBDD en el foro de PHP en Foros del Web. Saludos :) Llevo dos dias con esto asi que a ver si alguien puede echarme una manita, que de veras la necesito. Mi problema viene ...
  #1 (permalink)  
Antiguo 15/08/2013, 14:51
 
Fecha de Ingreso: agosto-2013
Mensajes: 103
Antigüedad: 10 años, 8 meses
Puntos: 1
Modificar contenido en BBDD

Saludos :)

Llevo dos dias con esto asi que a ver si alguien puede echarme una manita, que de veras la necesito.
Mi problema viene en la linea 36 del codigo (en el unico UPDATE que hay). La consulta esta mal hecha (lo sé, aunque no me da error en el wamp), y aunque he probado a hacerla de muchas maneras, que igualmente me marcaba correcto pero NO me modificaba nada, opte por usar la consola "automatica" que viene en PHPMYADMIN (por eso la consulta os la paso asi xD porque realmente yo estoy estudiando SQL que en realidad es casi lo mismo). Cuando le marco la resta que tiene que hacer la hace en javascript pero en mysql tengo mis dudas. O no hace la resta o no me lo modifica. Y ya no sé que hacer.

Siento mi extensa redaccion y mi mala expresion... son los nervios por no encontrar la maldita solucion... empiezo a estar exhausto
Código PHP:
Ver original
  1. <?php
  2. //comenzamos o continuamos con nuestra sesion
  3. //nos conectamos a la base de datos
  4. $mysqli = new mysqli("localhost", "root", "", "gameover");
  5. $mysqli->select_db("gameover");
  6. //si el post esta instanciado y no esta vacio
  7. if(isset($_POST) && !empty($_POST)){
  8. //Esto es la variable del producto que el cliente selecciona
  9. $product = $_POST["product"];
  10. //Recorre la base de datos y muestra en una lista (con el codigo que hay al final) los productos que hay
  11.     $result = $mysqli->query("select * from productos where id_productos='". $product."'");
  12.         while($fila = $result->fetch_assoc()){
  13.            
  14.             $id = $fila['id_productos'];
  15.             $productos = $fila['productos'];
  16.             $cantidad = $fila['cantidad'];
  17.             // siquiero fotos en la base de datos tendria que incluir $ruta = $fila['rutas'];
  18.             //echo '<script>alert("El producto es:'.$productos.'")</script>';
  19.         }
  20.     $result2 = $mysqli->query("select precio from precio where id_productos='". $product."'");
  21.         while($fila = $result2->fetch_assoc()){
  22.             $precio = $fila['precio'];
  23.         }
  24. $cantidadb=$_POST["cantidad"];
  25. $coste=$precio*$cantidadb;
  26. $inserta = "INSERT INTO presupuestos (productos, coste, cantidad) VALUES ('". $productos."', '".$coste."', '".$cantidadb."')";
  27.     //Si la cantidad que nos escribe el usuario es menor igual a la cantidad que hay en la base de datos,
  28.     // hacemos una consulta para insertar los datos en el presupuesto y enviamos la modificacion de la cantidad de
  29.     // productos que tenemos ahora en la base de datos
  30.  
  31.     if($cantidadb<=$cantidad){
  32.         $result3 = $mysqli->query($inserta);
  33.         $result3 = $mysqli->query("select productos, coste, cantidad from presupuestos");
  34.         $cantidadNew = $cantidad - $cantidadb;
  35.         $consulta="UPDATE  `gameover`.`productos` SET  `cantidad` =  '".$cantidadNew."' WHERE  `productos`.`id_productos` =".$productos;   
  36.             while($fila2 = $result3->fetch_assoc()){
  37.            
  38.             }
  39.             echo '<script language="JavaScript" type="text/javascript">alert("Pedido enviado");</script>';
  40.             echo '<script language="JavaScript" type="text/javascript">alert("En el almacen hay '.$cantidad.'");</script>';
  41.             echo '<script language="JavaScript" type="text/javascript">alert("El comprador pide '.$cantidadb.'");</script>';
  42.             echo '<script language="JavaScript" type="text/javascript">alert("El total es '.$cantidadNew.'");</script>';
  43.             $result4=$mysqli->query($consulta);
  44.             $result4=$mysqli->query("select cantidad from productos");
  45.             while($fila2 = $result4->fetch_assoc()){
  46.                
  47.             }
  48.     }else{
  49.         echo '<script language="JavaScript" type="text/javascript">alert("Cantidad incorrecta");</script>';
  50.     }
  51. }
  52. //Es parte de la consulta para saber el producto que el cliente quiere
  53. $resultSelect = $mysqli->query("select id_productos, productos from productos");
  54. $muestraProducto = '<select readonly="disabled" id="productil" name="product">
  55.                 <optgroup label="Normal">';
  56.                
  57. while($fila = $resultSelect->fetch_assoc()){     
  58. $muestraProducto .=     '<option value="'.$fila["id_productos"].'">'.$fila["productos"].'</option>';
  59. }              
  60. $muestraProducto .= '</optgroup></select> <p><strong>Cantidad</strong></p>
  61.         <input type="text" name="cantidad" size="7"/>  
  62.         <div id="boton2"><input type="submit" name="Comprar" value="Comprar"\></div>
  63.         <div id="boton3"><input type="reset" name="Borrar" value="Borrar"\></div> ';
  64. ?>

Solo os pongo el formulario de HTML para resumiroslo (el resto carece de utilidad para el codigo de PHP y son un porron de lineas inutiles para el problema :/ )
Código HTML:
Ver original
  1. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">  
  2.         <label id="product" for="productil"><p>Selecciona el artículo que deseas comprar<p></label>
  3.         <br/>
  4.           <?php echo $muestraProducto ?>
  5. </form>

Un saludo y agradezco cualquier ayuda.
  #2 (permalink)  
Antiguo 15/08/2013, 15:11
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 14 años, 9 meses
Puntos: 22
Respuesta: Modificar contenido en BBDD

¿Podrías hace un echo $consulta? Para comprobar que consulta está haciendo.

Igualmente haz un echo $mysqli->error, para ver si mysql te está devolviendo algún error.
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla
  #3 (permalink)  
Antiguo 15/08/2013, 16:55
 
Fecha de Ingreso: agosto-2013
Mensajes: 103
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: Modificar contenido en BBDD

El resultado del echo es:
UPDATE `gameover`.`productos` SET `cantidad` = '3' WHERE `productos`.`id_productos` =0001-A
Previamente le mande a $cantidadb el valor 1. El valor que tengo puesto al producto 0001-A es 4, por tanto $cantidad seria 4, para que os hagais a la idea :)
Recuerdo aqui la formula que hice:

Código PHP:
Ver original
  1. $product = $_POST["product"];
  2. //Recorre la base de datos y muestra en una lista (con el codigo que hay al final) los productos que hay
  3.     $result = $mysqli->query("select * from productos where id_productos='". $product."'");
  4.         while($fila = $result->fetch_assoc()){
  5.            
  6.             $id = $fila['id_productos'];
  7.             $productos = $fila['productos'];
  8.             $cantidad = $fila['cantidad'];
  9.             // siquiero fotos en la base de datos tendria que incluir $ruta = $fila['rutas'];
  10.             //echo '<script>alert("El producto es:'.$productos.'")</script>';
  11.         }
  12. $cantidadb=$_POST["cantidad"];
  13. $cantidadNew = $cantidad - $cantidadb;
  #4 (permalink)  
Antiguo 15/08/2013, 17:00
 
Fecha de Ingreso: agosto-2013
Mensajes: 103
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: Modificar contenido en BBDD

si pudierais revisar las comillas y las concatenaciones del update se agradeceria tambien. Sospecho que puede ser por eso

Código PHP:
Ver original
  1. $consulta="UPDATE  `gameover`.`productos` SET  `cantidad` =  '".$cantidadNew."' WHERE  `productos`.`id_productos` =".$productos;

Asi lo teneis mas a mano
  #5 (permalink)  
Antiguo 15/08/2013, 17:18
 
Fecha de Ingreso: agosto-2013
Mensajes: 103
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: Modificar contenido en BBDD

Cita:
Iniciado por angelAparicio Ver Mensaje
¿Podrías hace un echo $consulta? Para comprobar que consulta está haciendo.

Igualmente haz un echo $mysqli->error, para ver si mysql te está devolviendo algún error.
eres mi ídolo!!! Que crack!! Muchisimas gracias. El error era de la consulta del update. Ahora lo he arreglado :) eran las comillas y las concatenaciones. Lo dejo aqui la solucion:

Código PHP:
Ver original
  1. $consulta="UPDATE  `gameover`.`productos` SET  `cantidad` =  '".$cantidadNew."' WHERE  `productos`='".$productos."';";

Muchisimas gracias de verdad :) . Para la proxima tendré en cuenta estos consejos :D

Etiquetas: bbdd, contenido, formulario, html, modificar, mysql, select, sql, variable
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 23:12.