Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: geshiro en 21 Octubre 2015, 23:23 pm



Título: ayuda parte eliminar
Publicado por: geshiro en 21 Octubre 2015, 23:23 pm
alguien me puede ayudar es que cuando quiero eliminar primero los paso al ajax y del ajax al controlador pero en el controlador tengo una condicion si se hace que siga haciendolo y si no no pero en el php tengo lo que es eliminar y todo va bien porque me manda el mensaje pero al momento de eliminar solo me muestra el mensaje de la validacion pero no lo borra solo me muestra el mensaje pero como lo arreglo esa parte D:

Código
  1. function del(id){
  2.  $.ajax({
  3.    url:'../Controllers/actions.php',
  4.    type:'POST',
  5.    data:'code='+id+'&boton=delete_product'
  6.  }).done(function(ans){
  7.    alert(ans);
  8.  });
  9.  
  10. }
  11.  
  12.  

Código
  1. case 'delete_product':
  2. $code   = $_POST['code'];
  3. $delete = new product();
  4. if($delete->delete($code)){
  5. echo "success";
  6. }
  7. else{
  8. echo "there is something wrong";
  9. }
  10. break;
  11.  

Código
  1. function delete($code){
  2. $sql = "DELETE FROM product WHERE id_product='$code'";
  3. if($this->conexion->conexion->query($sql)){
  4. return true;
  5. }
  6. else{
  7. return false;
  8. }
  9. $this->conexion->cerrar();
  10. }
  11.  
  12. function show_product(){
  13. $sql = "SELECT * FROM product";
  14. $record = $this->conexion->conexion->query($sql);
  15. $item =0;
  16.  
  17. if(!$this->conexion->conexion->query($sql)){
  18. printf("Errormessage: %s\n", $this->conexion->conexion->error);
  19. }
  20. if($record->num_rows>0){
  21. while($show = $record->fetch_array(MYSQLI_ASSOC)){
  22. $item += 1;
  23. echo '<tr>
  24. <td>'.$item.'</td>
  25. <td>'.$show["code"].'</td>
  26. <td>'.$show["product"].'</td>
  27. <td>'.$show["price"].'</td>
  28. <td>'.$show["stock"].'</td>
  29. <td><button class="btn btn-danger" onclick="del('.$show["code"].');"><span class="glyphicon glyphicon-trash"></span></button></td>
  30. </tr>';
  31. }
  32. //this is for counting number of page
  33.  
  34. }
  35. else{
  36. echo '<tr><td colspan="7">no hay registros</td></tr>';
  37. }
  38. }
  39.  


Título: Re: ayuda parte eliminar
Publicado por: 0roch1 en 22 Octubre 2015, 18:48 pm
Exactamente que tiene la función query?.

Código
  1. if($this->conexion->conexion->query($sql)){
  2.  


Título: Re: ayuda parte eliminar
Publicado por: geshiro en 23 Octubre 2015, 04:03 am
la conexion a la db si no no lo envia


Título: Re: ayuda parte eliminar
Publicado por: T. Collins en 23 Octubre 2015, 04:59 am
Has probado si la query DELETE FROM product WHERE id_product='$code' funciona haciendola a la base de datos por línea de comandos u otro método?

Creo que si id_product es int, debería ir sin comillas, no estoy seguro.


Título: Re: ayuda parte eliminar
Publicado por: geshiro en 23 Octubre 2015, 05:59 am
si pero sige en lo mismo no lo borra


Título: Re: ayuda parte eliminar
Publicado por: 0roch1 en 23 Octubre 2015, 20:41 pm
Has probado si la query DELETE FROM product WHERE id_product='$code' funciona haciendola a la base de datos por línea de comandos u otro método?

Creo que si id_product es int, debería ir sin comillas, no estoy seguro.

En MySQL es indiferente si a un valor que es int lo colocas entre comillas

la conexion a la db si no no lo envia

Eso es más raro aún.
Puedes colocar un ejemplo (con datos reales) de los datos que tienes en la tabla, la consulta generada en $sql y el resultado que te muestra al ejecutarla en la consola?.

Por ejemplo.

Código
  1. $sql = "DELETE FROM product WHERE id_product='$code'";
  2. echo $sql;
  3.  

Resultado al imprimir la variable $sql
Código
  1. DELETE FROM product WHERE id_product='12345'
  2.  

Registros iniciales en la tabla product
Código
  1. +------------+-------+------------+-------+-------+
  2. | id_product | code  | product    | price | stock |
  3. +------------+-------+------------+-------+-------+
  4. |      12345 | COD 1 | Producto 1 | 43.21 |   100 |
  5. |      67890 | COD 2 | Producto 2 | 87.65 |     2 |
  6. +------------+-------+------------+-------+-------+
  7.  

Mensaje después de ejecutar la consulta.
Código:
1 row(s) affected

Execution Time : 0.009 sec
Transfer Time  : 0 sec
Total Time     : 0.010 sec

Registros finales.
Código
  1. +------------+-------+------------+-------+-------+
  2. | id_product | code  | product    | price | stock |
  3. +------------+-------+------------+-------+-------+
  4. |      12345 | COD 1 | Producto 1 | 43.21 |   100 |
  5. +------------+-------+------------+-------+-------+
  6.  


Por cierto deberías cambiar el nombre de tu campo code para evitar algún posible problema en el futuro.
Keywords and Reserved Words (https://dev.mysql.com/doc/refman/5.0/en/keywords.html)



Título: Re: ayuda parte eliminar
Publicado por: geshiro en 24 Octubre 2015, 02:37 am
de hecho lo cambie el code por la misma id_product de mi tabla ya que me estaba generando mucho error y se me estaba complicando pero ahora ya puedo borrar pero cada ves que borro tengo que actualizar como lo paso por dom lo que tengo y mi consulta fue asi

Código
  1. $sql = "DELETE FROM product WHERE id_product='$code'";
  2. <td><button class="btn btn-danger" onclick="del('.$show["id_product"].');"><span class="glyphicon glyphicon-trash"></span></button></td>
  3.  


Título: Re: ayuda parte eliminar
Publicado por: geshiro en 24 Octubre 2015, 16:12 pm
como puedo hacerlo para que lo haga atraves del DOM la parte de eliminar


Título: Re: ayuda parte eliminar
Publicado por: geshiro en 25 Octubre 2015, 21:47 pm
¿?