Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thiago Duarte

Sistema de avaliação

Recommended Posts

Eu estou desenvolvendo um sistema de avaliação de funcionários mas só que não consigo enserir as matriculas do avaliadores e funcionarios no banco de dados.

 

Eu tenho a página home onde eu faço a pesquisa e dps tenho outra chamada resultado, assim:

<?php
include "conexao.php";

// Conecta o servidor and seleciona o database.
mysql_connect("localhost", "root", "")or die("cannot connect"); 
mysql_select_db("sad")or die("cannot select DB");

$busca = $_POST['palavra'];// palavra que o usuario digitou

$busca_query = mysql_query("SELECT * FROM funcionarios WHERE nome LIKE '%$busca%'")or die(mysql_error());//faz a busca com as palavras enviadas

if (empty($busca_query)) { //Se nao achar nada, lança essa mensagem
   echo "Nenhum registro encontrado.";
}

// quando existir algo em '$busca_query' ele realizará o script abaixo.
while ($dados = mysql_fetch_array($busca_query)) {
    echo "<table width=450 border=0 cellspacing=0 cellpadding=0>
     <tr>
       <td height=38 bgcolor=#E9E9E9>$dados[nome] <a href='avaliacao.php'>avaliar</a>
	 <a href='ver_resultado.php'>ver resultado</a></td>
     </tr>
   </table>";
 echo "<br>"; 
}
?>

observe que tem um link para "avaliar" o funcionário. 

Na pagina avaliacao.php tem isso aqui

<?php
include "conexao.php";

$resposta1 = $_POST['resposta1'];
$resposta2 = $_POST['resposta2'];
$resposta3 = $_POST['resposta3'];
$resposta4 = $_POST['resposta4'];
$resposta5 = $_POST['resposta5'];
$resposta6 = $_POST['resposta6'];
$data = date('d-m-Y H:i:s');

$media = $resposta1+$resposta2+$resposta3+$resposta4+$resposta5+$resposta6;
$media=$media/6;


$query = mysql_query("INSERT INTO avaliados VALUES (null,'$data','$mat_aval','$mat_func','$resposta1','$resposta2','$resposta3','$resposta4','$resposta5','$resposta6','$media')");




if($query){
echo "Avaliado com sucesso<p><a href='home.php'>Voltar</a>";
} else {
echo "Não foi possivel Avaliar<p><a href='home.php'>Voltar</a>";   
}
?>

 

mas só que não inseri a matricula do funcionario nem do avaliador... o que eu faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que não é isso ae não... pra mim falta pegar a variavel mat_aval e mat_func , mas nem sei como faz..

 

pq o avaliador precisa está logado e avaliar o funcionário, só que quando ele avaliar irá automaticamente a matricula do avaliador e a matricula do funcionario, entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

botou o mysql_error ?? , se botou e retornou erro , poste aqui .. caso não tente botar o nome dos campos

 

$query = mysql_query("
INSERT INTO `avaliados` VALUES
('$data','$mat_aval','$mat_func','$resposta1','$resposta2','$resposta3','$resposta4','$resposta5','$resposta6','$media')
") or die( mysql_error() );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Notice: Undefined variable: mat_aval in C:\wamp\www\SAD\resultado2.php on line 16

 

Notice: Undefined variable: mat_func in C:\wamp\www\SAD\resultado2.php on line 16

Avaliado com sucesso

 

Ta inserindo os dados mas continua sem inserir a matricula

 

olha esse print em baixo

 

http://img510.imageshack.us/i/sistema.jpg/

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenho sim, é q não postei, olha ae

 

cadastro_funcionario2.php

<?php
include "conexao.php";

$nome = $_POST['nome'];
$mat_func = $_POST['mat_func'];
$cservidor = $_POST['cservidor'];
$sexo = $_POST['sexo'];
$cpf = $_POST['cpf'];
$cargo = $_POST['cargo'];
$admissao = $_POST['admissao'];
$funcao = $_POST['funcao'];
$datanasc = $_POST['datanasc'];
$lotacao = $_POST['lotacao'];

$query = mysql_query("INSERT INTO funcionarios VALUES (null,'$nome','$mat_func','$cservidor','$sexo','$cpf','$cargo','$admissao','$funcao','$datanasc','$lotacao')");

// Verifica se o Campo Nome Tá preenchido
if ($nome=="" )
			{	
				echo "<script type=\"text/javascript\">alert(\"Favor digitar seu nome\");history.go(-1);</script>\n";	
			}



if($query){
echo "Cadastrado com sucesso<p><a href='home2.php'>Voltar</a>";
} else {
echo "Não foi possivel cadastrar<p><a href='home2.php'>Voltar</a>";   
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais esse script não e incluso

 

(pelomenos ao meu ver) da outra query

 

e ambas são diferentes ..

 

crie duas variaveis de sessão pra transportar esses valores

 

ou bota uma variavel pra pegar esses valores vindo do post na query de avaliados

Compartilhar este post


Link para o post
Compartilhar em outros sites

No começo do codigo

var_dump($mat_func, $mat_func );
echo '<br><br>';

 

Se retornar NULL, verifica no formulario o nome dos campos deles.

 

Outra coisa, a sua query está certa? Olha como o Andrey fez...

$query = mysql_query("
INSERT INTO `avaliados` VALUES
('$data','$mat_aval','$mat_func','$resposta1','$resposta2','$resposta3','$resposta4','$resposta5','$resposta6','$media')
") or die( mysql_error() );

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

<input type="hidden" name="$mat_func" value="<?php echo $_POST['$mat_func'];?>">

<input type="hidden" name="$mat_aval" value="<?php echo $_POST['$mat_aval'];?>">

seria pra colocar isso em duas páginas né ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está fazendo errado, o $_POST[''] recebe o nome do campo, só que no nome do campo você inseriu uma variavel $ ?

Verifique abaixo a forma correta de se fazer

 

<input type="hidden" name="mat_func" value="<?php echo $_POST['mat_func'];?>">

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

otra dica...

nessa parte aqui:

 

while ($dados = mysql_fetch_array($busca_query)) {
    echo "<table width=450 border=0 cellspacing=0 cellpadding=0>
     <tr>
       <td height=38 bgcolor=#E9E9E9>$dados[nome] <a href='avaliacao.php'>avaliar</a>
                <a href='ver_resultado.php'>ver resultado</a></td>
     </tr>
   </table>";
        echo "<br>"; 
}

 

faça assim:

 

$tabela = <table width=450 border=0 cellspacing=0 cellpadding=0>
while ($dados = mysql_fetch_array($busca_query)) {

$tabela .= <tr>
       <td height=38 bgcolor=#E9E9E9>$dados[nome] <a href='avaliacao.php'>avaliar</a>
                <a href='ver_resultado.php'>ver resultado</a></td>
}

$tabela .= </table><br />

 

pq da otra forma, em cada volta que ele desse no ' while ' elel criaria uma tabela,

da segunda forma, ele cria uma unica tabela

so que no caso do <td> ele criara uma tabela na horinzontal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow, no meu SELECT ta assim

 

$busca_query = mysql_query("SELECT * FROM funcionarios WHERE nome LIKE '%$busca%'")or die(mysql_error());//faz a busca com as palavras enviadas

 

e nao ta apareçendo o campo matricula do funcionario, deve ser algo do select

 

olha ae o print das tabelas

 

avaliados (nessa tabela inseri os funcionarios avalidos) http://img708.imageshack.us/i/avaliados.jpg/

 

funcionarios (nessa tabela são todos os funcionarios cadastrados)http://img140.imageshack.us/i/funcionariosd.jpg/

 

id_login (login das pessoas que vão avaliar os funcionarios) http://img228.imageshack.us/i/idlogin.jpg/

 

usuarios (são os avaliadores que vão avaliar os funcionarios) http://img814.imageshack.us/i/usuariosi.jpg/

 

Entenderam?

 

olha a tela de pesquisar http://img713.imageshack.us/i/pesquisae.jpg/

 

tela com resultado http://img341.imageshack.us/i/resultadoi.jpg/

 

e quando clica nesse link avaliar que vai para pagina de avaliação http://img16.imageshack.us/i/avaliacaow.jpg/

 

 

O que será que ta errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando eu faço o que você disse dá erro, olha ae

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.Thiago.'%'' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.