..:: MX Studio Fóruns ::..: Depois de logado como comparar campos - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Depois de logado como comparar campos de tabelas diferentes? PRECISO DE AJUDA

#1 User is offline   Andreia Regina 

  • Group: Membros
  • Posts: 280
  • Joined: 20-February 04

Posted 27 May 2004 - 05:40 PM

Olá Pessoal MX!

Sou iniciante em PHP.
Fiz um sistema de login em um website que desenvolvi e agora preciso comparar o usuario de uma tabela com a matricula que está em outra tabela na página que o sistema acessa após a autenticação de usuário e senha.

Pois o usuario terá direito a fazer uma pesquisa sobre sua participação na associação.

Alguém pode me ajudar?

Não estou conseguindo iniciar o desenvolvimento desta nova pagina.php devido a esta dúvida.

smartass.gif Agradeço desde já. wub.gif

Andreia Regina
0

#2 User is offline   Firemaster 

  • Group: Membros
  • Posts: 1410
  • Joined: 14-September 04

Posted 27 May 2004 - 06:26 PM

Oi Regina.

Isso vai depender muito da modelagem das tabelas, que como você sabe, principalmente neste caso, precisa ser referenciada por chaves primárias e estrangeiras.

Bom, vou dar uma solução teórica e hipotética ok.

No caso a tabela que guarda os usuários possui algum campo autoincremento que seja a chave primária da tabela?

O campo da outra tabela (no caso, o campo matrícula) será comparado ao campo da chave primária da tabela de usuários?

Não sei se entendi bem a sua dúvida, mas se for isso, é bem fácil resolver.

[]'s
0

#3 User is offline   Andreia Regina 

  • Group: Membros
  • Posts: 280
  • Joined: 20-February 04

Posted 27 May 2004 - 08:02 PM

Na verdade, será usada a matricula do associado como login e precisarei usá-la para buscar as informações no banco de dados, por isso a necessidade de comparar.

Em uma tabela há a matricula, nome e senha e na outra matricula, nome, endereço e demais dados pessoais do associado.

A princípio não queríamos unir as tabelas através de chaves estrangeiras, mas se for necessário o faremos.

Poderia me passar a sintaxe só para ter de exemplo?

Grata pela atenção!

Andreia Regina
0

#4 User is offline   Andreia Regina 

  • Group: Membros
  • Posts: 280
  • Joined: 20-February 04

Posted 30 May 2004 - 06:37 PM

Olá Mx!

Acho que não estou conseguindo me expressar direito, gostaria que desse uma analisada no meu script para ver o que há de errado.

Desde já agradeço a atenção!

index.htm

CODE


<html>
...
<form method="post" action="autentica.php">
                  <table width="200" height="50" border="0" align="right" cellspacing="0" bordercolor="#9999FF">
                    <tr>
                      <td width="74" height="22"><font color="#0000FF" size="2" face="Arial, Helvetica, sans-serif">
                        Login: </font></td>
                      <td width="147"><div align="center"><font color="#0000FF" size="2" face="Arial, Helvetica, sans-serif">
                          <input type="text" name="usuario" size="10">
                          </font></div></td>
                    </tr>
                    <tr>
                      <td height="14"><font color="#0000FF" size="2" face="Arial, Helvetica, sans-serif">
                        Senha: </font></td>
                      <td><div align="center"><font color="#0000FF" size="2" face="Arial, Helvetica, sans-serif">
                          <input type="password" name="senha" size="10">
                          </font></div></td>
                    </tr>
                    <tr>
                      <td height="14"> <div align="center"> <font color="#0000FF" size="2" face="Arial, Helvetica, sans-serif">
                          <input name="imageField" type="image" src="imagem/botoes/entrar.gif" width="44" height="12" border="0">
                          </font></div></td>
                      <td></td>
                    </tr>
                  </table>
                </form>
...
</html>



conexao.php

CODE


<?php
mysql_connect("localhost", "usuario_bd", "senha_bd");
mysql_select_db("banco_dados");
?>



autentica.php

CODE


<?
require "conexao.php"; //Conecta com o Banco de dados

$usuario = isset($_POST["usuario"]) ? addslashes(trim($_POST["usuario"])) : FALSE;
$senha = isset($_POST["senha"]) ? addslashes(trim($_POST["senha"])) : FALSE;

// Usuário não forneceu a senha ou o login
if(!$usuario || !$senha)
{
  echo "Você deve digitar sua senha e login!";
}

$SQL = "SELECT usuario, senha
      FROM tb_usuarios
      WHERE usuario = '" . $usuario . "'";
$result_id = @mysql_query($SQL) or die("Erro no banco de dados!");
$total = @mysql_num_rows($result_id);

// Caso o usuário tenha digitado um login válido o número de linhas será 1..
if($total)
{
  // Obtém os dados do usuário, para poder verificar a senha e passar os demais dados para a sessão
  $dados = @mysql_fetch_array($result_id);

  //declare session variables and assign them
  $GLOBALS['matricula'] = $usuario;      

  //register the session variables
  session_register("matricula");

  // Agora verifica a senha
  if(!strcmp($senha, $dados["senha"]))
  {
     $_SESSION["usuario"]   = stripslashes($dados["usuario"]);
     $_SESSION["matricula"] = $dados["matricula"];
     header('Location: selecao_extrato.php');
  }
  // Senha inválida
  else
  {
      echo "Sua senha está incorreta!";
      exit;
  }
}
// Login inválido
else
{
  echo "Este login é inexistente!";
  exit;
}
?>




selecao_extrato.php

É aqui que começa a ficar complicado. Eu não consigo trazer o nome do usuario do banco de dados para visualizar nesta página. E nas demais que necessito fazer comparações.


CODE
 

<?
session_start();

require "conexao.php";

$matricula = $_SESSION['matricula'];
echo "Olá: " .$_SESSION[matricula];

echo "<table width='550' border='0' cellspacing='1'>";
echo "<tr>";
echo "<td width='619' valign='top'> <table width='100%' border='0'>";
echo "<tr>";
echo "<td align='right'><div align='right'></div></td>";
echo "</tr>";
echo "</table>";
echo "<form method='post' action='resultado.php'>";
echo "<table width='443' height='50' border='0' align='center' cellspacing='0' bordercolor='#9999FF'>";
echo "<tr>";
echo "<td height='22' colspan='4'><font color='#0000FF' size='2' face='Arial, Helvetica, sans-serif'>Selecione
            o ano e o mês para visualizar a relação de de descontos.</font>";
echo "<div align='center'><font color='#0000FF' size='2' face='Arial, Helvetica, sans-serif'>";
echo "</font></div></td>";
echo "</tr>";
echo "<tr>";
echo "<td width='97' height='14'><div align='center'><font color='#0000FF' size='2' face='Arial, Helvetica, sans-serif'>Ano:</font></div></td>";
echo "<td width='107'><div align='left'><font color='#0000FF' size='2' face='Arial, Helvetica, sans-serif'>";
echo "<input name='ano' type='text' value='2004' size='6' maxlength='4'>";
echo "</font></div></td>";
echo "<td width='100'><div align='center'><font color='#0000FF' size='2' face='Arial, Helvetica, sans-serif'>Mês:";
echo "</font></div></td>";
echo "<td width='131'><font color='#0000FF' size='2' face='Arial, Helvetica, sans-serif'>";
echo "<input name='mes' type='text' value='05' size='4' maxlength='2'>";
echo "</font></td>";
echo "</tr>";
echo "<tr>";
echo "<td height='14' colspan='2'> <div align='center'> <font color='#0000FF' size='2' face='Arial, Helvetica, sans-serif'>";
echo "</font></div>";
echo "<div align='center'><font color='#0000FF' size='2' face='Arial, Helvetica, sans-serif'>";
echo "<input type='submit' value='Enviar dados' name='enviar'>";
echo "</font></div></td>";
echo "<td height='14' colspan='2'><div align='center'>";
echo "<input type='reset' value='Limpar dados' name='limpar'></font></div>";
echo "</div></td>";
echo "</tr>";
echo "</table>";
echo "</form></td>";
echo "</tr>";
echo "<tr>";
echo "<td valign='top'>&nbsp;</td>";
echo "</tr>";
echo "</table>";
?>




Preciso que ele selecione dados no banco de dados para trazer o nome do usuario e outros dados para o resultado.php.

resultado.php


CODE


<?
require("conexao.php");

$dia_ingles = date("l"); //vê o dia da semana em inglês

switch($dia_ingles) //acha o dia da semana em português
{
case "Monday":
 $dia_port = "Segunda-Feira";
 break;
case "Tuesday":
 $dia_port = "Terça-Feira";
 break;
case "Wednesday":
 $dia_port = "Quarta-Feira";
 break;
case "Thursday":
 $dia_port = "Quinta-Feira";
 break;
case "Friday":
 $dia_port = "Sexta-Feira";
 break;
case "Saturday":
 $dia_port = "Sábado";
 break;
case "Sunday":
 $dia_port = "Domingo";
 break;
}
$mes_ingles = date("n"); // vê o mês em Inglês

switch($mes_ingles) // acha o mês em português
{
case "1":
  $mes_port = "Janeiro";
  break;
case "2":
  $mes_port = "Fevereiro";
  break;
case "3":
  $mes_port = "Março";
  break;
case "4":
  $mes_port = "Abril";
  break;
case "5":
  $mes_port = "Maio";
  break;
case "6":
  $mes_port = "Junho";
  break;
case "7":
  $mes_port = "Julho";
  break;
case "8":
  $mes_port = "Agosto";
  break;
case "9":
  $mes_port = "Setembro";
  break;
case "10":
  $mes_port = "Outubro";
  break;
case "11":
  $mes_port = "Novembro";
  break;
case "12":
 $mes_port = "Dezembro";
 break;
}

//SQL
/*$sql = mysql_query("
SELECT A.matricula, A.ano, A.mes, A.tipo_desconto, A.valor
FROM tb_descontos A
WHERE A.matricula = '".$_SESSION[usuario]."'") or die("ERRO NO SQL");

//LINHAS AFETADAS PELA CONSULTA
$row = mysql_num_rows($sql);
*/

$ano = isset($_POST["ano"]) ? addslashes(trim($_POST["ano"])) : FALSE;
$mes = isset($_POST["mes"]) ? addslashes(trim($_POST["mes"])) : FALSE;


$SQL = "SELECT ano, mes, matricula, tipo_desconto
      FROM tb_descontos
      WHERE ano = '" . $ano . " AND mes = " . $mes . "'";

$result_id = @mysql_query($SQL) or die("Erro no banco de dados!");
$total = @mysql_num_rows($result_id);

echo "Usuário logado no sistema: ".$_POST[usuario];

//TABELA
echo "<br><br>";
echo "<table border='1' cellpading='0' cellspacing='0'>";
echo "<tr>";
echo "<td>Matricula</td>";
echo "<td>Associado</td>";
echo "</tr>";
echo "<tr>";
echo "<td>Extrato emitido em:</td>";
echo "<td></td>";
echo "</tr>";
echo "<tr>";
echo "<td></td>";
echo "<td></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Descontos</td>";
echo "<td>Valor</td>";
echo "</tr>";

//EXIBE OS DADOS CORRESPONDENTES AO USUÁRIO
for($i=0; $i<$row; $i++){
$prod_id = mysql_result($sql, $i, "matricula");
$prod_nome = mysql_result($sql, $i, "tipo_desconto");
$prod_qtde = mysql_result($sql, $i, "valor");

echo "<td>$matricula</td>";
echo "<td>$associado</td>";
echo "</tr>";
echo "<tr>";
echo "<td></td>";
echo "<td>";
echo ($dia_port);
echo (", ");
echo (date("d"));
echo (" de ");
echo ($mes_port);
echo (" de ");
echo (date("Y"));
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>$tipo_desconto</td>";
echo "<td>$valor</td>";
echo "</tr>";
}//FECHA FOR

echo "</table>";

echo "<br><br><a href='logout.php'>Sair</a>";
?>




Desde já agradeço a atenção de vocês.

Andreia Regina
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)