1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Duvida PHP / SQL

Discussão em 'Web Development' iniciada por The Dealer, 1 de Maio de 2009. (Respostas: 9; Visualizações: 1276)

  1. The Dealer

    The Dealer Power Member

    PHP:

    $sql 
    "SELECT Alunos.nome
                    FROM Alunos, Users, UsersAlunos
                    WHERE Alunos.numero = UsersAlunos.Numero
                    AND Users.ID_Users = UsersAlunos.ID_Users"
    ;

    $result mysql_query($sql);
     echo 
    $result;

    //ou
    //print "ola" .$result."";

    Alguem me sabe dizer porque é que na BD dá-me o nome do aluno correctamente (é só um, é uma experiencia que estou a fazer), e porque é que assim não funciona? Não dá para num caso destes "alocar" o nome do aluno a uma variável?

    EDIT : Problema resolvido, o verdadeiro problema está cerca de 4 posts mais abaixo.
     
    Última edição: 2 de Maio de 2009
  2. Baderous

    Baderous Banido

  3. The Dealer

    The Dealer Power Member

    Exacto, não sei porquê tinha a ideia errada de que o que disse se podia fazer.
     
  4. muddymind

    muddymind 1st Folding then Sex

    Podes fazer algo deste tipo:

    Código:
    $result=dbquery($query);
    		
    $row=dbgetrow($result);		
    				
    echo $row['Alunos.nome'];
    
    dbfreeresult($result);
    Dá uma olhadela ao manual de php que lá têm toda a documentação e digo-te que tá muito boa ;)
     
  5. The Dealer

    The Dealer Power Member

    Eu agora estou é com um problema diferente que deriva do mesmo.

    Fiz :

    PHP:
            $result mysql_query($sql);
            
    $row mysql_fetch_array($result);
            
    $n $row['numero']; echo $n;
    E resulta. Ele fez o echo correctamente. Entretanto "muito mais à frente", depois de muitas operações, tenciono voltar a utilizar o $n, mas não consigo. Faço echo $n e nada. Experimentei if(!$n) echo "etc" e ele devolve o "etc".

    ???
     
  6. anjo2

    anjo2 Power Member

    O ! atrás das variáveis dá o resultado inverso dentro de um booleano, ou seja, se for diferente de 0, dá false, se for igual a true.

    Se redefinires o n, fica com o valor com que o redefinires, vê-se não estás a mudar o $n, ou senão tens algo tipo if($n = "exemplo") em vez de if($n == "exemplo")

    Eu não sei o código, mas algo estás a fazer mal, as variáveis só são limpas depois de terminar o script (a não ser que o faças manualmente).
     
  7. The Dealer

    The Dealer Power Member

    Sim eu sei.

    Tambem já percebi qual é o problema. É o seguinte. Eu inicialmente tenho uma página login.php onde o aluno insere o seu numero de aluno e a sua password.

    Ora na página seguinte, guardo logo o numero do aluno $n = $_REQUEST['username']; (vou precisar deste numero numa variavel, para apresentar os dados ao aluno conforme o que lhe pertence (algo que faço nos query sql)

    Adiante, logo a seguir aparece o menu dinamico que referi, onde existe uma opção Disciplinas (e a página lá carrega com index.php?id=2).

    O problema é que apesar de eu ter feito o seguinte para proteger o conteudo da variável (no inicio do index) :

    PHP:

     
    if($_POST['username']) {//(este post é para ir buscar o numero (o username é o numero do aluno)
                
    (... ) query's
                  
                $result = mysql_query($sql)
                $row = mysql_fetch_array($result);
                $row2 = mysql_fetch_array($result2);
                $row3 = mysql_fetch_array($result3);
                $n = $row['
    numero']; 
                $n2 = $row2['
    nome']; 
                $n3 = $row3['
    apelido']; 
                printf("<br>Bem vindo $n2 $n3, aluno número $n.<br><br>"); 
                }
        
              
    E lá está, quando abro o menu das disciplinas, que é suposto devolver uma tabela com disciplinas (mas só a que um dado aluno tem, daí passar a variavel $n dentro dum query SQL), mas o $n chega lá "vazio"... percebo que é por causa de todo o index.php carregar (indenpendentemente se vai pro ?id?=2 ou n), mas não devia guardar o valor de $n ? eu fiz esse if, porque lá está, na iteração seguinte (qd carrega o id=2, sub menu disciplinas, não voltar a atribuir erradamente $n, e assim conserva-se o valor da iteraçao anterior... ou pelo menos é como eu penso q faria...

    Será que me conseguem ajudar? Já estou a mais de uma hora a dar nisto... desculpem-me se nao me fizer entender mas já começo a ficar mesmo muito cansado..
     
    Última edição: 2 de Maio de 2009
  8. anjo2

    anjo2 Power Member

    Se tens um login, deves guardar os dados do login numa sessão e não um post, e não deves guardar a password.

    Eu recomendo-te a apagar isso tudo, quando mudas de página tudo desaparece.
    Fazes vários "mysql_fetch_array", suponho que seja para buscar vários "arrays" à tabela, mas vais buscar de querys diferentes? result2? result3? isso existe? Faz um print_r($row) para veres o que está lá dentro.
     
  9. The Dealer

    The Dealer Power Member

    Eu estou a fazer com sessões.

    Eu disse que era para umas experiencias que estava a fazer.

    De qualquer das formas, só queria saber, numa pagina index.php em que existe um menu dinamico com sub menus, é possivel guardar uma variavel $x contendo sempre um valor de um campo qq POST da login.php ?
     
  10. The Dealer

    The Dealer Power Member

    Agora que estudei as variáveis de sessão como deve ser, percebi o potencial das mesmas, e o quão ridicula foi a minha questão.
     

Partilhar esta Página