Actualizar o insertar con casillas de verificación en PHP

  • Autor Autor feder1
  • Fecha de inicio Fecha de inicio
feder1

feder1

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Buenas tardes a todos.
Estoy pensando y recontra pensando sobre como solucionar una duda que me surgió... el problema es sencillo, quiero que al ingresar a un panel administrativo allí se puedan seleccionar diferentes checkbox que actualicen el perfil de usuario.
Pero ahora tengo una duda muy grande:

Si ocupo INSERT INTO se me crea un nuevo ID de usuario y eso no es lo que quiero, lo que quiero es que se haga un update del usuario y que la casilla "especialidad" se complete.
(el codigo con INSERT INTO es el siguiente):

Insertar CODE, HTML o PHP:
<?php
if(isset($_POST["insert"]))
{
	$conn = mysqli_connect("localhost", "root", "", "base_test");
	$query = "INSERT INTO user(especialidad) VALUES ('".$_POST["insert"]."')";
	$result = mysqli_query($conn, $query);
	echo "Los datos se cargaron correctamente";
}
?>

Ahora bien, si ocupo el UPDATE tengo una duda enorme ya que lo puedo hacer y lo asigno desde el panel administrativo que vaya a un user id y desde ahí que salgan todos los checkbox, pero este no me updatea el campo "especialidad" porque (y quiero creer) que no le asigno un WHERE y que me diga un user ID:

Insertar CODE, HTML o PHP:
<?php
if(isset($_POST["insert"]))
{
	$conn = mysqli_connect("localhost", "root", "", "base_test");
	$query = "UPDATE user(especialidad) VALUES ('".$_POST["insert"]."')";
	$result = mysqli_query($conn, $query);
	echo "Los datos se cargaron correctamente";
}
?>
Y aca mi duda, de ser ese el caso, ¿Como le asignaría el WHERE para el id del usuario?

Desde ya, muchas gracias!-

=============================

Pido mil disculpas, esto iba a la sección php y por no prestar atención la publique en bases de datos.
 
Última edición:
Hola

Tienes que enviar de alguna forma el ID del usuario al cual vas a hacer el update, sino te lo va hacer en toda la base de datos.

Puedes ponerlos en un campo hidden y enviarlo en la misma form.

Saludos
 
pasa los ids a través de un array en los checkboxes y con eso solucionas el problema
 
Que tal, para hacerlo mas facil y no tener dolores de cabeza decidí ejecutar todo dentro de un mismo PHP.
Pero vuelvo al mismo problema... si lo hago con INSERT INTO me crea una tabla nueva de usuario cosa que no quiero, pero si lo cambio a UPDATE no me updatea el campo especifico de la tabla.
 
Lo tienes que hacer con update no con insert, y si no me equivoco tienes que usar "SET". Desde luego que el "ID" que comenta [MENTION=41713]nestornoe[/MENTION] también tienes que ponerlo en el WHERE

Insertar CODE, HTML o PHP:
UPDATE table_mane 
SET column1=value, column2=value2,...
WHERE some_column=some_value
 
Última edición:
Lo tienes que hacer con update no con insert, y si no me equivoco tienes que usar "SET". Desde luego que el "ID" que comenta [MENTION=41713]nestornoe[/MENTION] también tienes que ponerlo en el WHERE

Insertar CODE, HTML o PHP:
UPDATE table_mane 
SET column1=value, column2=value2,...
WHERE some_column=some_value

Muchas gracias, ya lo pude solventar... cometía un error tonto que me hiciste dar cuenta jaja.
Seguí tus pasos y los de nestornoe y pude llegar al resultado.
Mil gracias!.

Insertar CODE, HTML o PHP:
mysql_query("update usuario set especialidad='$datos' where id='".$_GET['id']."'");
 
Muchas gracias, ya lo pude solventar... cometía un error tonto que me hiciste dar cuenta jaja.
Seguí tus pasos y los de nestornoe y pude llegar al resultado.
Mil gracias!.

Insertar CODE, HTML o PHP:
mysql_query("update usuario set especialidad='$datos' where id='".$_GET['id']."'");
Parece que estás pasando el parámetro id tal cual lo envía el usuario, puedes forzarlo a ser un número así para evitar una vulnerabilidad SQLi:
PHP:
mysql_query("update usuario set especialidad='$datos' where id='".(int)$_GET['id']."'");

Depende de como estés tomando la variable datos tambien necesitarías escaparla, aquí está más explicado: http://forobeta.com/php/531337-protegerme-de-ataques-2.html#post4360187

Saludos :encouragement:
 
Amigo, si puedes en un futuro trata de aprender un poco de la estructura MVC, y encontrarás herramientas que te ayudarán o te facilitarán estos paradigmas. Saludos!
 
Tienes que enviar el ID del usuario al cual vas a hacer el update, sino te lo va hacer en toda la base de datos.
 
Atrás
Arriba