Ir al contenido


Foto

Guardar valor de una select en una variable para utilizarla en otra sentencia


  • Por favor identifícate para responder
1 respuesta en este tema

#1 armonick

armonick

    Member

  • Miembros
  • PipPip
  • 41 mensajes

Escrito 17 julio 2012 - 02:15

Hola,

Mi pregunta es si puedo utilizar el valor de un select para incluirlo en un update, por ejemplo tengo el siguiente método:


public function edit_usuarios()
{

$sql="update usuarios set nombre='".strip_tags($_POST["nombre"])."',correo='".strip_tags($_POST["correo"])."',user='".strip_tags($_POST["user"])."',estado='".strip_tags($_POST["estado"])."' where id_usuario=".strip_tags($_GET["id_usuario"]);

$sql2="SELECT p.id_perfil FROM perfiles AS p, usuarios AS u, tipo_perfil AS tp WHERE p.id_tipoperfil = ( SELECT tp.id_tipoperfil FROM tipo_perfil AS tp, perfiles as p WHERE tp.Descripcion = '".strip_tags($_POST["permiso"])."' AND p.perfil ='".strip_tags($_POST["perfil"])."')";

//$res=mysql_query($sql,Conectar::con());
//header("Location: ver_usuarios.php?m=2");

}


Las dos sentencias funcionan bien, realizan lo que quiero. La pregunta es si en la $sql puedo añadir lo siguiente id_perfil=$sql2:

Quedaría así:


$sql="update usuarios set nombre='".strip_tags($_POST["nombre"])."',correo='".strip_tags($_POST["correo"])."',user='".strip_tags($_POST["user"])."',estado='".strip_tags($_POST["estado"])."',id_perfil=$sql2 where id_usuario=".strip_tags($_GET["id_usuario"]);


No sé si se puede realizar o si se puede hacer de otra manera. A mi me está fallando, pero creo que hay alguna manera de hacerlo.

Saludos y gracias a tod@s!
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 17 julio 2012 - 02:50

Pos no, así lo que te va a guardar es la sentencia no el resultado de la misma, debes ejecutar la sentencia y recoger el valor en una variable y luego incluirlo:

public function edit_usuarios()
  {

$sql2="SELECT p.id_perfil FROM perfiles AS p, usuarios AS u, tipo_perfil AS tp WHERE p.id_tipoperfil = ( SELECT tp.id_tipoperfil FROM tipo_perfil AS tp, perfiles as p WHERE tp.Descripcion = '".strip_tags($_POST["permiso"])."' AND p.perfil ='".strip_tags($_POST["perfil"])."')";

$result = mysql_query($sql2,Conectar::con());

$row = mysql_fetch_assoc($result);

$sql = "update usuarios set nombre='".strip_tags($_POST["nombre"])."',correo='".strip_tags($_POST["correo"])."',user='".strip_tags($_POST["user"])."',estado='".strip_tags($_POST["estado"])."', id_perfil = '".strip_tags($row['id_perfil'])."' where id_usuario=".strip_tags($_GET["id_usuario"]);
   
//$res=mysql_query($sql,Conectar::con());
//header("Location: ver_usuarios.php?m=2");
   
}


Espero que con esto tengas una pista de por donde van los tiros ;).

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.