Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problemas para seleccionar un campo de la bd

Estas en el tema de problemas para seleccionar un campo de la bd en el foro de PHP en Foros del Web. Hola a todos, tengo una tabla se user que contiene usur, pass, tipo cuando el usuario se logea la pagina muestra la bienvenida con el ...
  #1 (permalink)  
Antiguo 24/06/2017, 10:46
 
Fecha de Ingreso: septiembre-2015
Ubicación: caracas
Mensajes: 75
Antigüedad: 8 años, 7 meses
Puntos: 0
problemas para seleccionar un campo de la bd

Hola a todos, tengo una tabla se user que contiene usur, pass, tipo
cuando el usuario se logea la pagina muestra la bienvenida con el nombre del usurio (user) hasta hay todo bien.

también contiene una sesión que

<?php

SESSION_START();

if (!empty($_SESSION["user"]) ){
$usuario=$_SESSION["user"]

?>
El problema es que quiero que aparezca el tipo de usuario si es funcional o técnico no logro extraer de la bd creo que el error esta en el select

/////////////////////////////////////

este es el archivo de login

<?php

$user = $_POST['user'];
$pass = $_POST['pass'];

if(empty($user) || empty($pass)){
header("Location: index.html");
exit();
}

mysql_connect('localhost','root','') or die("Error al conectar " . mysql_error());
mysql_select_db('hora') or die ("Error al seleccionar la Base de datos: " . mysql_error());

$result = mysql_query("SELECT * from funcional where user='" . $user . "'");

if($row = mysql_fetch_array($result)){
if($row['pass'] == $pass){
session_start();
$_SESSION['user'] = $user;

header("Location: entrar.php");
}else{
header("Location: index.html");
exit();
}
}else{

$result = mysql_query("SELECT * from tecnico where user='" . $user . "'");

if($row = mysql_fetch_array($result)){
if($row['pass'] == $pass){
session_start();
$_SESSION['user'] = $user;
header("Location: entrar2.php");
}else{
header("Location: index.html");
exit();
}
}else{
header("Location: index.html");
exit();

}
}
?>

y este es el archivo donde aparece el formulario y quiero que aparezca el tipo como pueden ver aparece el nombre no se como extraer el tipo
__________________
ymanol caires z
  #2 (permalink)  
Antiguo 24/06/2017, 14:02
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: problemas para seleccionar un campo de la bd

Ya tienes la comprobación de donde buscar el usuario y hace el efectivo el login.. solo falta que especifiques manualmente bajo el session_start(); segun el proceso donde fue encontrado, el tipo:

Código PHP:
Ver original
  1. $_SESSION['user'] = $user;
  2. $_SESSION['tipo'] = "EL TIPO QUE ES";  //LINEA A SER AGREGADA
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 24/06/2017, 17:26
 
Fecha de Ingreso: septiembre-2015
Ubicación: caracas
Mensajes: 75
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: problemas para seleccionar un campo de la bd

Saludos pero como me traigo el tipo si esta en la base de datos en el campo tipo y la autenticación lo hago con el user y pass como te muestro en este archivo fíjate que subo el usuario como hago para traer el tipo ya probé con un select a la base de datos pero nada que ver

<?php

$user = $_POST['user'];
$pass = $_POST['pass'];

if(empty($user) || empty($pass)){
header("Location: index.html");
exit();
}

mysql_connect('localhost','root','') or die("Error al conectar " . mysql_error());
mysql_select_db('hora') or die ("Error al seleccionar la Base de datos: " . mysql_error());

$result = mysql_query("SELECT * from funcional where user='" . $user . "'");

if($row = mysql_fetch_array($result)){
if($row['pass'] == $pass){
session_start();
$_SESSION['user'] = $user;

header("Location: entrar.php");
}else{
header("Location: index.html");
exit();
}
}else{

$result = mysql_query("SELECT * from tecnico where user='" . $user . "'");

if($row = mysql_fetch_array($result)){
if($row['pass'] == $pass){
session_start();
$_SESSION['user'] = $user;
header("Location: entrar2.php");
}else{
header("Location: index.html");
exit();
}
}else{
header("Location: index.html");
exit();

}
}
?>
__________________
ymanol caires z
  #4 (permalink)  
Antiguo 24/06/2017, 18:43
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: problemas para seleccionar un campo de la bd

ahi en ese codigo estas haciendo de por si la validacion(2 en realidad)

if(usuario esta en funcional){
hace el login y pone tipo funcional
}sino{
el usuario hace login y es tipo tecnico
}

entonces, me explico: si lo encuentras en el primer IF que es funcional, de por si, ya sabes que es tipo funcional o no???... no hace falta traer de la base de datos nada, solo asignarle "manualmente" que es tipo "funcional

Código PHP:
Ver original
  1. $_SESSION['tipo'] = "Funcional";

y listo..., si no esta, obviamente sera Tecnico, tal y como lo puse en el codigo de arriba

ahora, si hay mas tipos dentro de la tabla funcional o tecnico, pues seria agregar una linea:

Código PHP:
Ver original
  1. $_SESSION['tipo'] = $row['tipo'];

en el mismo lugar donde definias manualmente
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #5 (permalink)  
Antiguo 24/06/2017, 20:14
 
Fecha de Ingreso: septiembre-2015
Ubicación: caracas
Mensajes: 75
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: problemas para seleccionar un campo de la bd

Muchas gracias petit89 un millón tienes toda la razón lo otros que tenia pensado y lo hice ahora es si tanto funcional como técnico están en una misma tabla lo que hago es un if / else donde comparo el usuario claro esto para bases de datos cortas, muchas gracias un millón feliz fin
__________________
ymanol caires z

Etiquetas: bd, campo, formulario, html, mysql, select, 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 21:29.