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

[PHP]erro na minha classe

Discussão em 'Web Development' iniciada por wrproject, 12 de Outubro de 2007. (Respostas: 7; Visualizações: 656)

  1. wrproject

    wrproject Power Member

    ola pessoal, eu tenho estes dois ficheiros no meus servidor:

    conecta.php

    PHP:
    <?php
    $con
    =mysql_connect("meuuser","minhabd","root");
    if(!
    $con)
      {
      echo 
    "nao conectado";
      }
    else{echo 
    "conectado";}
    mysql_select_db("wrpcar_novadb",$con);
    ?>
    e tambem tenho esta:

    class_lib.php

    PHP:
    <?php
    include("conecta.php");
    class 
    info_user
    {
    public 
    $id;
    public 
    $nome;
    function 
    __construct($i)
    {
    $this->id=$i;
    }
    function 
    return_nome()
    {
    $sql="select * from user where idus='$this->id'";
    $result=mysql_query($sql,$con);
    while(
    $row=mysql_fetch_array($result))
    {
    //retorna o nome do artigo, este indice é o nome do campo da tabela artigo
    $this->nome=$row['nome'];
    }
    return 
    $this->nome;
    }
    function 
    return_id()
    {
    return 
    $this->id;
    }
    };
    $novo=new info_user(1);
    echo 
    "<br>";
    echo 
    $novo->return_id();
    echo 
    $novo->return_nome();
    ?>
    depois de exeucutar o ficheiro class_lib.php dame este erro:

    podiam ajudar-me?
    ja ando aqui as voltas e nao consigo.
    obrigado pela ajuda.
     
    Última edição: 12 de Outubro de 2007
  2. p3dro

    p3dro Power Member

    Penso que o problema esteja na ligação à BD, tenta colocar o
    PHP:
    include("conecta.php");
    em
    PHP:
    function return_nome()
    , como por ex:

    PHP:
    function return_nome(){
      include(
    "conecta.php");
      
    $sql="select * from user where idus='$this->id'";
      
    $result=mysql_query($sql,$con);
      while(
    $row=mysql_fetch_array($result)){
        
    //retorna o nome do artigo, este indice é o nome do campo da tabela artigo
        
    $this->nome=$row['nome'];
      }
    }
    e tem atenção com os atributos publicos da class, encapsulation's your friend :p
     
  3. AliFromCairo

    AliFromCairo Power Member

    O ideal até era teres uma classe para gerir as ligações à base de dados, ao invés de estares a fazer includes.
     
    Última edição: 12 de Outubro de 2007
  4. wrproject

    wrproject Power Member

    ja ta resolvido, o problema nao era dos includes, era na variavel, faltava por as plicas($sql="select * from artigo where id='$this->user';
    agradeço a vossa ajuda.
     
  5. p3dro

    p3dro Power Member

    :confused: dava-te um erro de "MySQL-Link resource" numa instrução sql mal construída?

    mas como o AliFromCairo disse, e bem, é aconselhável que cries por ex. uma class que trata da bd, faz a ligação, consultas, actualiza, apaga, insere, etc, etc.
     
  6. xOy

    xOy Power Member

    nao acredito k ng viu o erro...??


    PHP:
    $con=mysql_connect("meuuser","minhabd","root","password");
    try again.... hmmmm....

    em php.net tem:

    PHP:
    $link mysql_connect('localhost''mysql_user''mysql_password');
    n tou em casa, n te posso dizer ao certo...
     
    Última edição: 12 de Outubro de 2007
  7. p3dro

    p3dro Power Member

    Bem, ninguém viu/ reparou nisso, mas tu andas a ver coisas a mais :lol:

    Ele tem isto no post:
    PHP:
    $con=mysql_connect("meuuser","minhabd","root");
    ou então foi editado e ai my bad :P


    Acredito que tenha sido um erro dele ao editar esses campos no post, apesar, de olhando para descrição, dos dados que ele tem na função estarem errados, não iria dar o erro que lhe estava a dar, acho que iria dar um erro de host not found ou se o problema fosse as credenciais seria access denied; mas o mysql_connect pode receber até 5 parametros.


    Mas adiante, o rapaz até já tem o problema resolvido :x2:
     
  8. xOy

    xOy Power Member

    upz... my bad... :|
     

Partilhar esta Página