PHP - Problema para almacenar los datos ingresados en mi BD

 
Vista:
Imágen de perfil de Geraldine

Problema para almacenar los datos ingresados en mi BD

Publicado por Geraldine (2 intervenciones) el 02/02/2022 04:17:57
Muy buenas compañeros, tengo el siguiente problema con mi código, verán cree dos tablas en mi base de datos, la primera se encarga de guardar un cliente y en la otra un código. Además, cree tres clases diferentes para poderlo trabajar. Siendo una de ellas "formulas", en donde a partir de un botón hecho modal ingreso el nombre del producto, y con el otro botón agrego de tipo modal agrego son los químicos que componen a ese producto.

El asunto es que al darle al botón de guardar no se almacena los datos de los químicos que ingreso, sino que me redirecciona a la página recibirDatos.php - Not Found The requested URL was not found on this server.

Cabe resaltar que tome de ejemplo un código que esta alojado en github, que al modificarlo en su base SI funciona y cumple con mis requerimientos, pero al pasarlo a mi sistema "formulas" no almacena los datos.


Esta es mi clase conexion
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
class Conexion{
 
	static public function conectar(){
		try{
			$conn = new PDO("mysql:host=localhost;dbname=corvequim_sis", "root", "" , array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
			return $conn;
		}
		catch (PDOException $e){
			echo 'Fallo la conexion: ' . $e->getMessage();
 
		}
	}
}


Mi clase recibirDatos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
require_once "conexion.php";
 
$id 			        = $_POST['id'];
$nombre_quimico   = $_POST['nombre_quimico'];
$cantidad         = $_POST['cantidad'];
$unidad 		      = $_POST['unidad'];
 
 
$dataCode = count($nombre_quimico);
if($dataCode >0){
    for ($i=0; $i <$dataCode; $i++) {
 
    //Verifico si existe el codigo
    $sqlCode  = ("SELECT *  FROM tbl_quimicos WHERE nombre_quimico='$nombre_quimico[$i]' ");
    $queryCode = mysqli_query($conn, $sqlCode);
    if(mysqli_num_rows($queryCode)>0){
        //echo 'Ya existe el codigo';
        }else{
            $queryInsertCode = ("INSERT INTO tbl_quimicos(id_formula,nombre_quimico,cantidad,unidad) VALUES ('" .$id. "','" .$nombre_quimico[$i]. "','" .$cantidad_quimico[$i]. "','".$unidad[$i]."')");
            $resultado = mysqli_query($conn, $queryInsertCode);
        }
    }
echo '<p style="color:#fff;"></p>';
echo "<script type='text/javascript'>
  Swal.fire(
  'Felicitaciones!',
  'Se ha guardado con exito los datos',
  'success'
).then((result) => {
      if (result.isConfirmed) {
        location.href='formulas.php';
      }
    })
</script>";
}else{
    echo 'Error, no se ha podido registrar los datos';
}
?>


Mi clase formulas, les dejare el archivo completo para que puedan ver todo el codigo, pero por ahora mi problema radica justo en estas lineas especificas de este archivo. Les dejare el codigo completo de formulas y la base de datos abajito.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
<!-- Content Header (Page header) -->
<div class="content-header">
  <div class="container-fluid">
    <div class="row mb-2">
      <div class="col-sm-6">
        <h1 class="m-0">Administrar Fórmulas</h1>
      </div><!-- /.col -->
      <div class="col-sm-6">
        <ol class="breadcrumb float-sm-right">
          <li class="breadcrumb-item"><a href="#">Inicio</a></li>
          <li class="breadcrumb-item active">Administrar fórmulas</li>
        </ol>
      </div>
    </div>
  </div>
</div>
 
 
<!-- VENTANA MODAL PARA REGISTRO Y ACTUALIZACION DE FORMULAS -->
<section class="content">
    <div class="container-fluid">
 
        <div class="modal fade" id="modal-gestionar-formula" tabindex="-1" aria-hidden="true">
          <div class="modal-dialog modal-lg">
            <div class="modal-content">
 
              <!-- CABECERA MODAL -->
              <div class="modal-header bg-info">
                <h4 class="modal-title">Gestionar Formulas <i class="fas fa-vial"></i></h4>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
              </div>
 
              <!-- CUERPO MODAL -->
              <div class="modal-body">
 
                <?php
                  include "conexion.php";
                  $sqlProductos   = ("SELECT * FROM  tbl_quimicos");
                  $dataProductos  = mysqli_query($conn, $sqlProductos);
                ?>
                <form action="recibirDatos.php" method="POST">
 
                  <!-- Lista de productos quimicos -->
                    <div class="row">
                      <div class="form-group col-md-8">
                        <label class="" for="selProductoReg"><i class="fas fa-list-ul"></i> Lista de productos</label>
                        <select name="id" class="form-select form-select-sm" aria-label=".form-select-sm example" data-show-subtext="false" data-live-search="true" id="selProductoReg" required>
                          <?php
                            while ($data = mysqli_fetch_array($dataProductos)) { ?>
                              <option value="<?php echo $data["id"]?>">
                                <?php echo utf8_encode($data["producto"])?>
                              </option>
                           <?php } ?>
                          ?>
                        </select>
                        <div class="invalid-feedback">Seleccione el producto</div>
                      </div>
 
                      <!-- Boton agregar fila -->
                      <div class="form-group col-md-4">
                      <label for="code" class="text-right"></label><br>
                      <button type="button" class="btn add-btn btn-info">
                        <i class="fas fa-plus"> Agregar fila</i>
                      </button>
                    </div>
                    </div>
 
                  <!-- FORM-ROW PARA QUE ESTE EN FILA LAS 3 COLUMNAS -->
                  <div class="form-row">
 
                    <!-- Nombre del quimico -->
                    <div class="form-group col-md-4">
                      <label for="nombre_quimico">Nombre del quimico</label>
                      <input type="text" name="nombre_quimico[]" class="form-control" placeholder="Ingrese el quimico" required>
                    </div>
 
                    <!-- cantidad del producto quimico -->
                    <div class="form-group col-md-3">
                      <label for="cantidad">Cantidad</label>
                      <input type="number" name="cantidad[]" class="form-control" placeholder="Cantidad" min="0">
                    </div>
 
                    <!-- Tipo de unidad de cada quimico -->
                    <div class="form-group col-md-2">
                      <label>Unidades</label>
                      <select name="unidades" class="form-control">
                        <option value="0">Lt(s)</option>
                        <option value="1">Mlt(s)</option>
                        <option value="2">Kg(s)</option>
                        <option value="3">Gr(s)</option>
                      </select>
                    </div>
                  </div>
 
                  <div class="newData"></div>
 
                  <!-- FOOTER MODAL -->
                  <div class="modal-footer">
                    <button type="button" class="btn btn-danger" data-bs-dismiss="modal">Cerrar</button>
                    <button type="submit" class="btn btn-success">Guardar</button>
                  </div>
                </form>
 
              </div>
            </div>
          </div>
        </div>
    </div>
</section>
 
<script>
  $(document).ready(function(){
    /*===================================================================*/
    //SOLICITUD AJAX PARA CARGAR SELECT DE PRODUCTO REGISTRADO
    /*===================================================================*/
    $.ajax({
        url: "ajax/formulas.ajax.php",
        cache: false,
        contentType: false,
        processData: false,
        dataType: 'json',
        success: function(respuesta) {
 
            var options = '<option selected value="">Seleccione un producto</option>';
 
            for (let index = 0; index < respuesta.length; index++) {
                options = options + '<option value=' + respuesta[index][0] + '>' + respuesta[index][
                    1
                ] + '</option>';
            }
 
            $("#selProductoReg").append(options);
        }
    });
 
    /*===================================================================*/
    //BOTON PARA AGREGAR MAS FILAS
    /*===================================================================*/
    var i=1;
    $('.add-btn').click(function(e) {
      e.preventDefault();
        i++;
 
        $('.newData').append('<div id="newRow'+i+'" class="form-row">'
            +'<div class="form-group col-md-4">'
              +'<input type="text" name="nombre_quimico[]" class="form-control" placeholder="Ingrese el quimico" required>'
            +'</div>'
 
            +'<div class="form-group col-md-3">'
              +'<input type="number" name="cantidad[]" class="form-control" placeholder="Cantidad" min="0">'
            +'</div>'
 
            +'<div class="form-group col-md-2">'
              +'<select name="unidades" class="form-control">'
                +'<option value="0">Lt(s)</option>'
                +'<option value="1">Mlt(s)</option>'
                +'<option value="2">Kg(s)</option>'
                +'<option value="3">Gr(s)</option>'
              +'</select>'
            +'</div>'
            +'<a href="#" class="remove-lnk" id="'+i+'">Eliminar "'+i+'"</a>'
            +'</div>'
        );
    });
    $(document).on('click', '.remove-lnk', function(e) {
       e.preventDefault();
 
       var id = $(this).attr("id");
       $('#newRow'+id+'').remove();
    });
  })
</script>

Este es el github de la persona (https://github.com/urian121/Crear-Inputs-de-forma-Dinamicos-con-PHP-Javascript-Jquery-y-Mysql), utilice la que dice demo 1

Espero de corazón me puedan ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema para almacenar los datos ingresados en mi BD

Publicado por Alejandro (840 intervenciones) el 10/02/2022 16:37:18
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Estoy seguro que ya te había respondido a este tema, no se que sucedió.

Primero revisa las rutas de tus archivos, mira la URL cuando obtienes "Not Found The requested URL was not found on this server".
http://localhost/carpeta/recibirDatos.php te debe coincidir con tu htdocs/carpeta/recibirDatos.php o www/carpeta/recibirDatos.php
El archivo del formulario debe estar junto al recibirDatos.php

Resolviendo eso ya después vez los demás errores, aunque te los adelanto
Jamás usas la clase "Conexion".
Estas mezclando PDO con programación estructurada (mysqli_query() en lugar PDO::query())
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar