2010-12-18 23 views
0

私は2つのクラス、usuarios、preguntasを使って作業しています。PHP。別のクラスの関数を呼び出す。

私はpreguntasで、私はユーザーからのidに対応するid_usuarioを保存しました。しかし時々私はidよりも多くを表示する必要があるので、私はusuariosで関数を作った。

function __construct($id){ 

    $consulta = mysql_query("SELECT * FROM usuarios WHERE id = '".$id."'"); 
     while($item = mysql_fetch_array($consulta)){        
      $this->id = $item['id']; 
      $this ->fid = $item['fid']; 
      $this ->usuario = $item['alias']; 
      $this ->password = $item['pass']; 
      $this ->email = $item['mail']; 
      $this ->fechar = $item['fechar']; 
      $this ->ultima = $item['ultima']; 
      $this ->img_src = $item['img_src']; 
      $this ->reputacion =  $this ->fechar = $item['reputacion']; 
     } 
} 




function miniatura(){ 
    $html_mini = "<div>$this->usuario</div>"; 
    return $html_mini; 

} 

pregunta:これは今

usuarios.php(私はこの問題に関連するコードを含むよ)

CódigoPHPのためのマイルコードです

:この情報を印刷するには、PHP .php(この問題の関連コードのみを含む)

コジゴPHP:

function get_autor(){ 


       $us = new usuario($item['id']); 

      return $us->miniatura(); 
} 



function imprimir_titular(){ 
    $html_t = '<h1 class="prg'.$this->id.'" >[ '.$this->id_eval_q.' ] '.$this->get_autor().' pregunta: '.$this->pregunta.' , '.$this->fecha.'</h1>'; 
    return $html_t; 
} 

そして、これは誤りです:

CITA:

Fatal error: Call to undefined method usuario::miniatura() in /home/piscolab/public_html/keepyourlinks.com/recetorium/clases/pregunta.php on line 35 No entiendo por qué no accede al método de la clase usuarios, aunque me deje crear el objeto usuario :S

詳細: - すべてのヘルプは、ウェルカム

+1

どこ 'usuario'クラスの定義は何ですか?最初のコードスニペットの周りにあるはずですか? –

+0

方法は「公共」作ってみてください。 - 私はそれが公共作ってみました、それは私にエラーを与えるパブリック関数サムネイル(){} – Andreas

+0

は「公共T_STRING unexpedted」:S –

答えて

1

私はあなたのコード、メソッドの変更内容をコピーし、すべてが

class usuario { 
function __construct($id){ 

    echo 'ok'; 
} 




function miniatura(){ 
    echo 'ok'; 

} 

} 




function get_autor(){ 


       $us = new usuario($item['id']); 

      return $us->miniatura(); 
} 

を働く間違っ示す何にので、あなたのコードとの完全なクラスを表示します。

+0

が十分に何んて? –

0

OKになります保護atributes

、これはどこのファイルです私は両方を呼び出しています:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

Recetorium> Preguntas - Pregunta O responde QUE Yコモcocinar ALGO

Cargando ..

およびルータで 。PHP

<?php require_once('funciones.php');   

(ISSET($ _ POST [ 'スタート'])){

// el usuario está iniciando sesion   

$iniciando = new sesion_usuarios(); 
if($iniciando->iniciar()){ 
    imprimir_sesion_iniciada(); 
}else{ 
    imprimir_formulario_sesion(); 
} 

}であれば、他の(ISSET($ _ POST [ 'ログイン'])){ は$登録する場合=新しいですuser_log(); IF(登録によって$>登録()){ imprimir_usuario_registrado()。 }エルス{ imprimir_formulario_registro()。そうであれば(ISSET($ _ GET [ 'は'])またはよりISSET($)) }

} {

if(isset($que)) 
     $tarea = $que; 
    else 
     $tarea = $_GET['que']; 

    if($tarea == 'registro'){ 
     imprimir_formulario_registro(); 
    }else if($tarea == 'login'){ 
     imprimir_formulario_sesion(); 
    }else if($tarea == 'salir'){ 
     cerrar_sesion(); 
    }else if($tarea == 'ultimas_preguntas'){ 
     listar_preguntas(); 
    }else if($tarea == 'nueva_pregunta'){ 
     $tem = new pregunta(); 
     $tem->imprimir_formulario; 
    }else if($tarea == 'ultimas_recetas'){ 
     $tem = new pregunta(); 
     $tem->imprimir_formulario; 
    } 

}そうであれば(sesion()){ 「が準備prodrásをエコー:物事を尋ね、物事に答えて、両方を評価する。あなたのレシピを公開し、他の人を発見し、評価し、評価してください。 }他{$アーカイブ= 'bienvenida.php';
は、($のarchivo)を含み; imprimir_formulario_sesion()。

}

?>

関連する問題