If you're going to be using global variables (i.e. you want the variables scoped to the class, not just the function) you need to write to them as that.
This should work for you:
class Page {
var $Title;
var $Keywords;
var $Content;
var $section;
var $conn;
var $Fill_Combo_Array;
var $field_num;
var $fill_combo_num;
function Fill_Combo($qry){
$qry = mysql_query($qry) or die("Wrong ".$qry." QRY");
$i=0;
$this->field_num = mysql_num_fields($qry);
while($res = mysql_fetch_array($qry)){
$j=0;
while($j < $field_num){
$this->Fill_Combo_Array[$i][$j] = $res[$j];
$j++;
}
$i++;
}
$this->fill_combo_num = $i;
}
<select size="1" name="eg_cat">';
$num = 0;
$this->Fill_Combo("select id , cat_name as cat_name from cat");
while($num < $this->fill_combo_num){
$j = 0;
while($j < $this->field_num){
echo'<option value="'.$this->Fill_Combo_Array[$num][$j].'">'.$this->Fill_Combo_Array[$num][$j].'</option>';
$j++;
}
$num++;
}
</select>
When writing values to variables, if you want them to be global within the class, you first declare them (you did fine there). Then, when writing to them, if you want the variable and value available outside the function you're in, you need to write to it using this syntax:
$this->variable_name = 'some value';
Otherwise, the variable is only visible from within the function. I updated the "Fill_Combo" function to write to the "global" variables. So it should work for you now. Take time to compare what the differences are.
~Brett