Que tal, me gustarian algunas opiniones sobre lo siguiente:
Tengo un formulario el cual proceso mediante una clase en php5, los datos del formulario son procesados en 2 arrays, algo como "nombre_campo" => "valor" y mediante un metodo heredado de otra clase lo proceso y lo guardo en mi base de datos.

Esos datos se guardan en dos tablas diferentes, en una guardo los puros indices que recojo de los select del formulario, pero en la otra tabla van los id de x cantidad de selects, esa tabla genera un id auto increment por cada registro, yo necesito recojer ese id y mandarselo al primero array para guardarlo en la primera tabla y asi posteriormente hacer una relacion con INNER JOIN. Se me habia ocurrido descomponer el array al procesar la info, guardar los datos de los select y luego retornarle el id generado al otro array de datos para asi guardarlo pero no me convence mucho la idea, alguna sugerencia???

esta es la clase que se encarga de hacer las manipulaciones en la base de datos

Código PHP :

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

abstract class manejadorDB
{
    private $_query = '';
    private $_conexion = '';
    private $_getData = array();
    
    public function __construct()
    {
        $this->_conexion = new conectorDB();
    }
    public function getAllData($fields, $table, $where)
    {
        $rows = mysql_query("SELECT $fields FROM $table WHERE $where");
        While($row = mysql_fetch_assoc($rows)){
            $this->_getData[] = $row;
        }
        return $this->_getData;
    }
    public function insert($data,$table)
    {
        $fields = "";
        $values = "";
        foreach($data as $clave => $valor){
            $fields .= "`".$clave."`,";
            $values .= "'".$valor."',";
        }
        $fields = rtrim($fields,",");
        $values = rtrim($values,",");
        mysql_query("INSERT INTO $table (".$fields.") VALUES (".$values.")");
        return $this->lastId();
        $this->close();
    }
    public function lastId()
    {
        return mysql_insert_id();
    }
    public function update($arrayData,$table,$where)
    {
        $update_info = "";
        foreach($arrayData as $clave => $valor){
            $update_info .= "`".$clave."`" ." = ". "'".$valor."',";
        }
        $update_info = rtrim($update_info,",");
        mysql_query("UPDATE $table SET $update_info WHERE $where ");
    }
    public function delete($where,$table)
    {
        $this->_query = mysql_query("DELETE FROM $table WHERE $where");
    }
    public function  close()
    {
        mysql_close();
    }
}


esta clase procesa los datos (es una clase de pruebas, no está bien diseñada)

Código PHP :

<?php
require_once('manejadorDB.php');
require_once('animal.php');

class data extends manejadorDB
{
    private $_animal;
    
    public function __construct() {
        $this->_animal = new Animal();
    }
    public function addAnimal($data,$table)
    {
        $this->insert($data, $table);
        return $this->lastId();
    }
    public function addAction($data,$table)
    {
        $fields = array();
        $values = array();
        foreach($data as $field => $value){
            $fields[] = $field;
            $values[] = $value;
        }
        //Busco el numero del animal dentro del array de valores
        $find = array_search($values[0], $values);
        /*
         * Reemplazo el numero del animal por su ID
         * array_splice remueve un valor y lo reemplaza por otro
         */
        array_splice($values,$find,1,$this->_animal->getAnimalId($values[0]));
        //Combino los array para crear uno solo
        $newArray = array_combine($fields,$values);        
        //Inserto los datos en la DB
        $this->insert($newArray, $table);
    }
    public function addDrugs($data,$table)
    {
        $this->insert($data, $table);
    }
    public function upDateInfo($data, $table, $where)
    {
        $this->update($data, $table, $where);
    }
    public function deleteInfo($where, $table)
    {
        $this->delete($where, $table);
    }
}

$maite = new data();

$arraya = array("animal" => "30", "stat" => "9");

$array = array(
                "animal_id"     => "141416",
                "evento_id"     => "9", 
                "fecha"         => "2012-03-02 00:00:00",
                "codigo"        => "2",
                "tec_id"        => "2",
                "com"           => "ajas",
                "com2"          => "ajas",
                "agenda_com"    => "ajas agenda com",
                "prob_id"       => "2",
                "agenda_id"     => "2",
                "med_id"        => "2"
               );

$arrayMeds = array(
                    "med0" => "13",
                    "med1" => "2",
                    "med2" => "3",
                    "med3" => "4",
                    "med4" => "5",
                    "med5" => "6",
                    "med6" => "7",
                    "med7" => "8",
                    "med8" => "9",
                    "med9" => "10",
);

//echo $maite->addAnimal($arraya,'animales');

//$maite->upDateInfo($array,'tratamientos', "id = 39");
$maite->addAction($array,'tratamientos');
echo $maite->lastId()."<br/>";


$maite->addDrugs($arrayMeds,'meds_id');
echo $maite->lastId()."<br/>";



Gracias ;)