Foros del Web » Programando para Internet » PHP »

PHP OO Formulario en registros de una tabla

Estas en el tema de Formulario en registros de una tabla en el foro de PHP en Foros del Web. Buenas de nuevo compis, antes de nada gracias de antemano. He conseguido que en el panel de administración que esté realizando muestre la lista de ...
  #1 (permalink)  
Antiguo 30/12/2015, 18:42
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 7 meses
Puntos: 468
Formulario en registros de una tabla

Buenas de nuevo compis, antes de nada gracias de antemano.

He conseguido que en el panel de administración que esté realizando muestre la lista de materiales que he añadido a una tabla, cada material tiene un formulario con 3 checkboxs y un botón enviar, quedando de esta manera:



como véis en el 4 artículo están 2 checkbox marcados, pues con una comprobación busca en la bd si estos tienen que estar marcados o no, hasta ahí bien, y funciona, pero lo que tengo que hacer ahora es que pueda marcar yo mismo los que quiero activar o desactivar

Tengo digamos el codigo que tiene que ejecutar al enviar el formulario pero contiene algún erorr y tampoco se donde tengo que colocarlo exactamente dentro de mi while para mostrar los registros...y que si cambio los checkboxs solo lo haga en la fila correspondiente

Código PHP:
Ver original
  1. $con = conectar();
  2.  
  3. $lg = "<div class='clearfix visible-lg-block'></div>";
  4. $md = "<div class='clearfix visible-md-block'></div>";
  5. $sm = "<div class='clearfix visible-sm-block'></div>";
  6. $lg_md = "<div class='clearfix visible-lg-block visible-md-block'></div>";
  7. $lg_sm = "<div class='clearfix visible-lg-block visible-sm-block'></div>";
  8. $md_sm = "<div class='clearfix visible-md-block visible-sm-block'></div>";
  9.  
  10. if(isset($_POST["enviar"])) {
  11.  
  12.     if($_post["check4"] == "4") {
  13.         $sql2 = "INSERT INTO materiales (bugs) VALUES ('$lg')"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  14.         $resultado = $con->query($consulta) || die("Ha ocurrido un error al guardar los datos");
  15.     }
  16.     elseif($_POST["check3"] == "3") {
  17.         $sql2 = "INSERT INTO materiales (bugs) VALUES ('$md')"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  18.         $resultado = $con->query($consulta) || die("Ha ocurrido un error al guardar los datos");
  19.     }
  20.     elseif($_POST["check2"] == "2") {
  21.         $sql2 = "INSERT INTO materiales (bugs) VALUES ('$sm')"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  22.         $resultado = $con->query($consulta) || die("Ha ocurrido un error al guardar los datos");
  23.     }
  24.     elseif($_POST["check4"] == "4" and $_POST["check3"] == "3") {
  25.         $sql2 = "INSERT INTO materiales (bugs) VALUES ('$lg_md')"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  26.         $resultado = $con->query($consulta) || die("Ha ocurrido un error al guardar los datos");
  27.     }
  28.     elseif($_POST["check4"] == "4" and $_POST["check2"] == "2") {
  29.         $sql2 = "INSERT INTO materiales (bugs) VALUES ('$lg_sm')"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  30.         $resultado = $con->query($consulta) || die("Ha ocurrido un error al guardar los datos");
  31.     }
  32.     elseif($_POST["check3"] == "3" and $_POST["check2"] == "2") {
  33.         $sql2 = "INSERT INTO materiales (bugs) VALUES ('$md_sm')"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  34.         $resultado = $con->query($consulta) || die("Ha ocurrido un error al guardar los datos");
  35.     }
  36. }

Ya tengo una conexión activa que es con la que he mostrado toda la info de la tabla que aparece en la imagen..

Código PHP:
Ver original
  1. function conectar() {
  2.     $host = "xxxxx";
  3.     $dbusuario = "xxxxx";
  4.     $dbpass = "xxxx";
  5.     $dbname = "xxxx";
  6.  
  7.     $mysqli = new mysqli($host, $dbusuario, $dbpass, $dbname);
  8.     //verificamos la conexion
  9.     if(mysqli_connect_errno()) {
  10.       echo "conexion fallida: " . mysqli_connect_error();
  11.       exit();
  12.     }
  13.     return $mysqli;
  14.   }

Un saludo!!
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #2 (permalink)  
Antiguo 30/12/2015, 19:35
 
Fecha de Ingreso: diciembre-2015
Ubicación: Valencia
Mensajes: 61
Antigüedad: 8 años, 10 meses
Puntos: 10
Respuesta: Formulario en registros de una tabla

¿Y cual es el problema? ¿No te inserta los registros en la base de datos o no inserta los valores adecuados?
  #3 (permalink)  
Antiguo 30/12/2015, 19:36
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 7 meses
Puntos: 468
Respuesta: Formulario en registros de una tabla

Pensando creo que lo he complicado mucho al exponerme, creo que con saber como hacer el boton borrar, y que borre esa fila de la tabla en cuestión podré hacer lo que he intentado explicar xd
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #4 (permalink)  
Antiguo 30/12/2015, 19:43
 
Fecha de Ingreso: diciembre-2015
Ubicación: Valencia
Mensajes: 61
Antigüedad: 8 años, 10 meses
Puntos: 10
Respuesta: Formulario en registros de una tabla

Cita:
Iniciado por rodrypaladin Ver Mensaje
Pensando creo que lo he complicado mucho al exponerme, creo que con saber como hacer el boton borrar, y que borre esa fila de la tabla en cuestión podré hacer lo que he intentado explicar xd
¿Entonces lo que necesitas es saber como eliminar esos registros de la db para activar o desactivar esas casillas? Eso va a depender de como tengas la estructura en la db, si tiene un identificador de artículo en la tabla bugs, eliminar los que sean de ese número.

Realmente no sé ni lo que digo porque no entiendo muy bien como quieres hacerlo y cómo lo tienes hecho
  #5 (permalink)  
Antiguo 30/12/2015, 19:50
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 7 meses
Puntos: 468
Respuesta: Formulario en registros de una tabla

No vi tu respuesta @Zenok disculpa, el problema es que no se como realizarlo

Se que comprobaciones tengo que hacer y se como añadirlo a la tabla, pero no se el como implementarlo para que el añadirlo se aplique a su correspondiente fila de la tabla
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #6 (permalink)  
Antiguo 30/12/2015, 19:57
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 7 meses
Puntos: 468
Respuesta: Formulario en registros de una tabla

A ver si consigo explicarme mejor:

con esta funcion conecto a la base de datos:

Código PHP:
Ver original
  1. function conectar() {
  2.     $host = "xxxxx";
  3.     $dbusuario = "xxxxx";
  4.     $dbpass = "xxxx";
  5.     $dbname = "xxxx";
  6.  
  7.     $mysqli = new mysqli($host, $dbusuario, $dbpass, $dbname);
  8.     //verificamos la conexion
  9.     if(mysqli_connect_errno()) {
  10.       echo "conexion fallida: " . mysqli_connect_error();
  11.       exit();
  12.     }
  13.     return $mysqli;
  14.   }

muestro como aparece en la foto todos los los registros de la tabla "materiales" con este codigo:

Código PHP:
Ver original
  1. if($result = $con->query($query)) {
  2.         while ($row = $result->fetch_array()) {
  3.  
  4.           $string = $row["bugs"];
  5.  
  6.           $buscar4   = "lg";
  7.           $pos4 = strpos($string, $buscar4);
  8.          
  9.           $buscar3 = "md";
  10.           $pos3 = strpos($string, $buscar3);
  11.  
  12.           $buscar2 = "sm";
  13.           $pos2 = strpos($string, $buscar2);
  14.           ?>
  15.            
  16.         <tr>
  17.         <td><?php echo $row['titulo']; ?></td>
  18.         <td><?php echo $row['categoria']; ?></td>
  19.         <td><?php echo $row['descripcion']; ?></td>
  20.         <td><?php echo $row['precio']; ?> €</td>
  21.         <?php echo "<td><img width='210' height='137' src='" . $row['imagen'] . "'/></td>"; ?>
  22.         <td><button class='btn btn-warning'>Editar</button></td>
  23.         <td>
  24.         <form action='' method='post'>
  25.         <button  name='borrar' class='btn btn-danger'>Borrar</button></td>
  26.         </form>
  27.         <td>
  28.        <form action='' method='post'>
  29.         <button class='btn btn-primary' name='enviar'>Enviar</button>
  30.         <div class='checkbox'>
  31.         <label>
  32.         <input type='checkbox' name='check4' value='4' <?php echo ($pos4===false) ? '':'checked'; ?> > 4
  33.        
  34.         </label>
  35.         </div>
  36.         <div class='checkbox'>
  37.         <label>
  38.         <input type='checkbox' name='check3' value='3' <?php echo ($pos3===false) ? '':'checked'; ?> > 3
  39.        
  40.         </label>
  41.         </div>
  42.         <div class='checkbox'>
  43.         <label>
  44.         <input type='checkbox' name='check2' value='2' <?php echo ($pos2===false) ? '':'checked'; ?> > 2
  45.         </label>
  46.         </div>
  47.         </form>
  48.         </td>
  49.         </tr>
  50.         <?php
  51.         }
  52.         $result->close();
  53.       }
  54.     $con->close();

como se ve ahí dentro está este formulario:

Código PHP:
Ver original
  1. <form action='' method='post'>
  2.         <button class='btn btn-primary' name='enviar'>Enviar</button>
  3.         <div class='checkbox'>
  4.         <label>
  5.         <input type='checkbox' name='check4' value='4' <?php echo ($pos4===false) ? '':'checked'; ?> > 4
  6.        
  7.         </label>
  8.         </div>
  9.         <div class='checkbox'>
  10.         <label>
  11.         <input type='checkbox' name='check3' value='3' <?php echo ($pos3===false) ? '':'checked'; ?> > 3
  12.        
  13.         </label>
  14.         </div>
  15.         <div class='checkbox'>
  16.         <label>
  17.         <input type='checkbox' name='check2' value='2' <?php echo ($pos2===false) ? '':'checked'; ?> > 2
  18.         </label>
  19.         </div>
  20.         </form>

con el cual quiero ejecutar este codigo:

Código PHP:
Ver original
  1. if(isset($_POST["enviar"])) {
  2.  
  3.     if($_post["check4"] == "4") {
  4.         $sql2 = "INSERT INTO materiales (bugs) VALUES ('$lg')"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  5.         $resultado = $con->query($consulta) || die("Ha ocurrido un error al guardar los datos");
  6.     }
  7.     elseif($_POST["check3"] == "3") {
  8.         $sql2 = "INSERT INTO materiales (bugs) VALUES ('$md')"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  9.         $resultado = $con->query($consulta) || die("Ha ocurrido un error al guardar los datos");
  10.     }
  11.     elseif($_POST["check2"] == "2") {
  12.         $sql2 = "INSERT INTO materiales (bugs) VALUES ('$sm')"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  13.         $resultado = $con->query($consulta) || die("Ha ocurrido un error al guardar los datos");
  14.     }
  15.     elseif($_POST["check4"] == "4" and $_POST["check3"] == "3") {
  16.         $sql2 = "INSERT INTO materiales (bugs) VALUES ('$lg_md')"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  17.         $resultado = $con->query($consulta) || die("Ha ocurrido un error al guardar los datos");
  18.     }
  19.     elseif($_POST["check4"] == "4" and $_POST["check2"] == "2") {
  20.         $sql2 = "INSERT INTO materiales (bugs) VALUES ('$lg_sm')"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  21.         $resultado = $con->query($consulta) || die("Ha ocurrido un error al guardar los datos");
  22.     }
  23.     elseif($_POST["check3"] == "3" and $_POST["check2"] == "2") {
  24.         $sql2 = "INSERT INTO materiales (bugs) VALUES ('$md_sm')"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  25.         $resultado = $con->query($consulta) || die("Ha ocurrido un error al guardar los datos");
  26.     }
  27. }

Primeramente no se si ejecuto bien $sql2 y segundo no se donde diantres tengo que ponerle para que cada boton enviar, envie los datos a la correspondiente fila de la tabla

Espero haberme explicado algo mejor ahora jejeje.
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #7 (permalink)  
Antiguo 31/12/2015, 11:36
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 7 meses
Puntos: 468
Respuesta: Formulario en registros de una tabla

Vamosss!!! Darle un ojillo a ver
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #8 (permalink)  
Antiguo 01/01/2016, 05:21
 
Fecha de Ingreso: diciembre-2015
Ubicación: Valencia
Mensajes: 61
Antigüedad: 8 años, 10 meses
Puntos: 10
Respuesta: Formulario en registros de una tabla

El $sql2 está bien ejecutado, aunque no es necesario que repitas esto tantas veces, puedes colocarlo fuera porque nunca varía (Esto más que nada como anotación, no afecta en nada:

Código PHP:
$resultado $con->query($consulta) || die("Ha ocurrido un error al guardar los datos"); 
Es que tu problema no es cuestión de código, tienes que plantearte cómo hacerlo. Si no he entendido mal, lo que quieres es que al darle al botón enviar, afecte solo al artículo en cuestión y no todos ¿Es así?

Si es eso, para ello tienes las claves foráneas. La tabla debería tener una columna foránea (Por ejemplo idproducto), y cada fila tendría el identificador del producto al que corresponde. En el formulario de enviar se colocaría un input hidden con el identificador del producto.

Tampoco sé exactamente qué es lo que quieres hacer con la tabla bugs y para que sirve, quizás sabiéndolo te podría sugerir otras cosas.

Un saludo y feliz año nuevo.
  #9 (permalink)  
Antiguo 01/01/2016, 08:28
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 7 meses
Puntos: 468
Respuesta: Formulario en registros de una tabla

Si lo hago tantas veces es pq dependiendo del condicional ingresa una cosa y otra:

Código PHP:
Ver original
  1. $lg = "<div class='clearfix visible-lg-block'></div>";
  2. $md = "<div class='clearfix visible-md-block'></div>";
  3. $sm = "<div class='clearfix visible-sm-block'></div>";
  4. $lg_md = "<div class='clearfix visible-lg-block visible-md-block'></div>";
  5. $lg_sm = "<div class='clearfix visible-lg-block visible-sm-block'></div>";
  6. $md_sm = "<div class='clearfix visible-md-block visible-sm-block'></div>";

Ahora mismo está a sí pero tampoco funciona.

Código PHP:
Ver original
  1. if(isset($_POST["enviar"])) {
  2.          
  3.             if($_post["check4"] == "4") {
  4.                 $id_agregar = $_POST["id"];
  5.                 $sql2 = "UPDATE materiales SET bugs='$lg' WHERE idmateriales='$id_agregar'"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  6.                 $con->query($sql2) || die("Ha ocurrido un error al guardar los datos");
  7.             }
  8.             elseif($_POST["check3"] == "3") {
  9.                 $id_agregar = $_POST["id"];
  10.                 $sql2 = "UPDATE materiales SET bugs='$md' WHERE idmateriales='$id_agregar'"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  11.                 $con->query($sql2) || die("Ha ocurrido un error al guardar los datos");
  12.             }
  13.             elseif($_POST["check2"] == "2") {
  14.                 $id_agregar = $_POST["id"];
  15.                 $sql2 = "UPDATE materiales SET bugs='$sm' WHERE idmateriales='$id_agregar'"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  16.                 $con->query($sql2) || die("Ha ocurrido un error al guardar los datos");
  17.             }
  18.             elseif($_POST["check4"] == "4" and $_POST["check3"] == "3") {
  19.                 $id_agregar = $_POST["id"];
  20.                 $sql2 = "UPDATE materiales SET bugs='$lg_md' WHERE idmateriales='$id_agregar'"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  21.                 $con->query($sql2) || die("Ha ocurrido un error al guardar los datos");
  22.             }
  23.             elseif($_POST["check4"] == "4" and $_POST["check2"] == "2") {
  24.                 $id_agregar = $_POST["id"];
  25.                 $sql2 = "UPDATE materiales SET bugs='$lg_sm' WHERE idmateriales='$id_agregar'"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  26.                 $con->query($sql2) || die("Ha ocurrido un error al guardar los datos");
  27.             }
  28.             elseif($_POST["check3"] == "3" and $_POST["check2"] == "2") {
  29.                 $id_agregar = $_POST["id"];
  30.                 $sql2 = "UPDATE materiales SET bugs='$md_sm' WHERE idmateriales='$id_agregar'"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  31.                 $con->query($sql2) || die("Ha ocurrido un error al guardar los datos");
  32.             }
  33.         }

Y este es el form que va antes:

Código PHP:
Ver original
  1. <form action='' method='post'>
  2.         <?php echo "<input type='hidden' name='id' value='" . $row['idmaterial'] . "'/>"; ?>
  3.         <button type='submit' class='btn btn-primary' name='enviar' value='enviar'>Enviar</button>
  4.         <div class='checkbox'>
  5.         <label>
  6.         <input type='checkbox' name='check4' value='4' <?php echo ($pos4===false) ? '':'checked'; ?> > 4
  7.         </label>
  8.         </div>
  9.         <div class='checkbox'>
  10.         <label>
  11.         <input type='checkbox' name='check3' value='3' <?php echo ($pos3===false) ? '':'checked'; ?> > 3
  12.         </label>
  13.         </div>
  14.         <div class='checkbox'>
  15.         <label>
  16.         <input type='checkbox' name='check2' value='2' <?php echo ($pos2===false) ? '':'checked'; ?> > 2
  17.         </label>
  18.         </div>
__________________
No te olvides de dar +1 a quien te echa un cable ;)

Última edición por rodrypaladin; 01/01/2016 a las 08:37
  #10 (permalink)  
Antiguo 01/01/2016, 09:13
 
Fecha de Ingreso: diciembre-2015
Ubicación: Valencia
Mensajes: 61
Antigüedad: 8 años, 10 meses
Puntos: 10
Respuesta: Formulario en registros de una tabla

Si los identificadores están donde toca debería actualizar las filas sin problemas. ¿La tabla materiales es la misma que la tabla donde tienes los artículos que listas?

Creo que ya entiendo lo que quieres hacer, tienes 3 checkbox y dependiendo de los campos que marque el usuario actualizara la columna bugs con un html distinto.

Yo haría algo así (No necesitas una tabla aparte para poder hacer eso):

En la tabla donde almacenas los artículos que listas, añadiría la columna bugs. Ejemplo:
Cita:
id, nombre, precio, descripcion, bugs
Luego, tal y como tienes hecho ahora, pasaría el identificador del artículo al input hidden, y al recibirlo con el formulario solo tendrías que actualizar la columna "bugs" de ese artículo.


PD:
Me refería a que no es necesario que repitas tantas veces el:

Código PHP:
Ver original
  1. $con->query($sql2) || die("Ha ocurrido un error al guardar los datos");
  #11 (permalink)  
Antiguo 01/01/2016, 09:23
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 7 meses
Puntos: 468
Respuesta: Formulario en registros de una tabla

Exacto, eso es lo que pretendo, ya he cambiado para no repetir tantas veces el

Código PHP:
Ver original
  1. $con->query($sql2) || die("Ha ocurrido un error al guardar los datos");

Por otro lado creo que ya tengo añadido el hidden en el input

Código PHP:
Ver original
  1. <form action='' method='post'>
  2.         <?php echo "<input type='hidden' name='id' value='" . $row['idmaterial'] . "'/>"; ?>
  3.         <button type='submit' class='btn btn-primary' name='enviar' value='enviar'>Enviar</button>
  4.         <div class='checkbox'>
  5.         <label>
  6.         <input type='checkbox' name='check4' value='4' <?php echo ($pos4===false) ? '':'checked'; ?> > 4
  7.         </label>
  8.         </div>
  9.         <div class='checkbox'>
  10.         <label>
  11.         <input type='checkbox' name='check3' value='3' <?php echo ($pos3===false) ? '':'checked'; ?> > 3
  12.         </label>
  13.         </div>
  14.         <div class='checkbox'>
  15.         <label>
  16.         <input type='checkbox' name='check2' value='2' <?php echo ($pos2===false) ? '':'checked'; ?> > 2
  17.         </label>
  18.         </div>

La tabla materiales la tengo con esta estructura:

idmaterial | titulo | categoria | descripcion | precio | imagen | bugs

lo que no es es porque no actualiza el campo bugs y le añade el codigo html que pretendo.

EDITO: Algo curioso que ocurre: al marcar algun check de algun material y al darle a enviar, luego me aparecen listado solo los materiales que tienen algún check activado ( el cual ya le puse el codigo desde myphpadmin directamente )
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #12 (permalink)  
Antiguo 01/01/2016, 09:28
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 7 meses
Puntos: 468
Respuesta: Formulario en registros de una tabla

Por si ayuda a encontrar lo que falla pego absolutamente todo el código que tengo para mostrar la lista de materiales, con los respectivos formularios de los checksbox

Código PHP:
Ver original
  1. <?php
  2.       if($result = $con->query($query)) {
  3.         while ($row = $result->fetch_array()) {
  4.  
  5.           $string = $row["bugs"];
  6.  
  7.           $buscar4   = "lg";
  8.           $pos4 = strpos($string, $buscar4);
  9.          
  10.           $buscar3 = "md";
  11.           $pos3 = strpos($string, $buscar3);
  12.  
  13.           $buscar2 = "sm";
  14.           $pos2 = strpos($string, $buscar2);
  15.           ?>
  16.            
  17.         <tr>
  18.         <td><?php echo $row['titulo']; ?></td>
  19.         <td><?php echo $row['categoria']; ?></td>
  20.         <td><?php echo $row['descripcion']; ?></td>
  21.         <td><?php echo $row['precio']; ?> €</td>
  22.         <?php echo "<td><img width='210' height='137' src='" . $row['imagen'] . "'/></td>"; ?>
  23.         <td><button class='btn btn-warning'>Editar</button></td>
  24.         <td>
  25.         <form action='' method='post'>
  26.         <?php echo "<input type='hidden' name='id' value='" . $row['idmaterial'] . "'/>"; ?>
  27.         <button type="submit" name='borrar' class='btn btn-danger' value="borrar">Borrar</button>
  28.         <?php
  29.         if(isset($_POST["borrar"])) {
  30.             $id_borrar = $_POST["id"];
  31.             $sql_borrar = "DELETE FROM materiales WHERE idmaterial='$id_borrar'";
  32.             $con->query($sql_borrar);
  33.             header('Location: materiales.php');
  34.         }
  35. ?>
  36.         </td>
  37.         </form>
  38.         <td>
  39.         <form action='' method='post'>
  40.         <?php echo "<input type='hidden' name='bug' value='" . $row['idmaterial'] . "'/>"; ?>
  41.         <button type='submit' class='btn btn-primary' name='enviar' value='enviar'>Enviar</button>
  42.         <div class='checkbox'>
  43.         <label>
  44.         <input type='checkbox' name='check4' value='4' <?php echo ($pos4===false) ? '':'checked'; ?> > 4
  45.         </label>
  46.         </div>
  47.         <div class='checkbox'>
  48.         <label>
  49.         <input type='checkbox' name='check3' value='3' <?php echo ($pos3===false) ? '':'checked'; ?> > 3
  50.         </label>
  51.         </div>
  52.         <div class='checkbox'>
  53.         <label>
  54.         <input type='checkbox' name='check2' value='2' <?php echo ($pos2===false) ? '':'checked'; ?> > 2
  55.         </label>
  56.         </div>
  57.         <?php
  58.  
  59.         if(isset($_POST["enviar"])) {
  60.          
  61.             if($_post["check4"] == "4") {
  62.                 $id_agregar = $_POST["bug"];
  63.                 $sql2 = "UPDATE materiales SET bugs='$lg' WHERE idmateriales='$id_agregar'"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  64.                
  65.             }
  66.             elseif($_POST["check3"] == "3") {
  67.                 $id_agregar = $_POST["bug"];
  68.                 $sql2 = "UPDATE materiales SET bugs='$md' WHERE idmateriales='$id_agregar'"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  69.                
  70.             }
  71.             elseif($_POST["check2"] == "2") {
  72.                 $id_agregar = $_POST["bug"];
  73.                 $sql2 = "UPDATE materiales SET bugs='$sm' WHERE idmateriales='$id_agregar'"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  74.                
  75.             }
  76.             elseif($_POST["check4"] == "4" and $_POST["check3"] == "3") {
  77.                 $id_agregar = $_POST["bug"];
  78.                 $sql2 = "UPDATE materiales SET bugs='$lg_md' WHERE idmateriales='$id_agregar'"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  79.                
  80.             }
  81.             elseif($_POST["check4"] == "4" and $_POST["check2"] == "2") {
  82.                 $id_agregar = $_POST["bug"];
  83.                 $sql2 = "UPDATE materiales SET bugs='$lg_sm' WHERE idmateriales='$id_agregar'"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  84.                
  85.             }
  86.             elseif($_POST["check3"] == "3" and $_POST["check2"] == "2") {
  87.                 $id_agregar = $_POST["bug"];
  88.                 $sql2 = "UPDATE materiales SET bugs='$md_sm' WHERE idmateriales='$id_agregar'"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  89.                
  90.             }
  91.             elseif($_POST["check4"] == "4" and $_POST["check3"] == "3" and $_POST["check2"] == "2") {
  92.                 $id_agregar = $_POST["bug"];
  93.                 $sql2 = "UPDATE materiales SET bugs='$ld_md_sm' WHERE idmateriales='$id_agregar'"; // lo llamo $sql2 porque ya use $sql para agregar los datos de la imagen
  94.                
  95.             }
  96.         $con->query($sql2) || die("Ha ocurrido un error al guardar los datos");
  97.         }
  98. ?>
  99.         </form>
  100.         </td>
  101.         </tr>
  102.         <?php
  103.         }
  104.         $result->close();
  105.       }
  106.     $con->close();
  107.       ?>
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #13 (permalink)  
Antiguo 01/01/2016, 10:28
 
Fecha de Ingreso: diciembre-2015
Ubicación: Valencia
Mensajes: 61
Antigüedad: 8 años, 10 meses
Puntos: 10
Respuesta: Formulario en registros de una tabla

¿Has comprobado que llegue a cumplirse alguna de las condiciones al enviarse el formulario?

Saca el código que comprueba el formulario fuera del bucle while, puede que ese sea tu problema. Si aun así no funciona haz lo que te comento, puedes tratar de imprimir algo en cada una de las condiciones para ver hasta donde está llegando a ejecutar, para ver si es un problema de sql o de que no se están cumpliendo las condiciones.
  #14 (permalink)  
Antiguo 01/01/2016, 13:08
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 7 meses
Puntos: 468
Respuesta: Formulario en registros de una tabla

lo he sacado fuera del while pero nada!!
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #15 (permalink)  
Antiguo 01/01/2016, 13:40
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: Formulario en registros de una tabla

Creo que lo mejor es empezar a depurar lo que tienes para ir viendo dónde está el error. Te sugiero que crees un nuevo archivo, llamado "pruebas.php"

Y lo incluyas en el form para "Enviar", ponle action="pruebas.php".
También el campo que tienes hidden con el id del articulo, ponlo en texto para que puedas visualizarlo, y asegurate que por cada artículo le va mostrando su Id correcto.

Dentro de dicho archivo, después de las conexiones y tal, recoje el valor del campo "bug" y el valor de los tres checkbox que tienes.

Luego de eso imprime cada una de esas variables. Ve haciendo pruebas por ejemplo marcando solo el checkbox "check4" y te debería de imprimir el 4 obviamente, si lo hace todo correctamente entonces el problema no está por ahí y así podemos enfocarnos en otras cosas.
  #16 (permalink)  
Antiguo 01/01/2016, 13:48
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: Formulario en registros de una tabla

Una duda. Si tú configuras los checkbox desde el MySql te aparecen correctamente? Es decir, cada artículo le aparecen sus checkbox activados/desactivados correctamente?
  #17 (permalink)  
Antiguo 02/01/2016, 13:05
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 7 meses
Puntos: 468
Respuesta: Formulario en registros de una tabla

Si, en mysql le añado el código html el cual busco, y cuando cargo la lista si que salen los checkboxs correspondientes activados o desactivados, eso si funciona
__________________
No te olvides de dar +1 a quien te echa un cable ;)

Etiquetas: formulario, mysql, registros, sql, 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 22:04.