2010-01-05 5 views
0

J'ai des noms d'id avec la deuxième partie du nom de table plus id.Comment manipuler un paramètre en fonction d'un autre paramètre dans une fonction php?

For example 

admins_id in omc_admins table, 

customers_id in omc_customers table, 

products_id in omc_products table, 

categories_id in omc_categories table etc. 

Maintenant, le code de fonction suivant est supposé trouver des orphelins. Par exemple, lorsque je supprime des catégories, il vérifie les produits et trouve les orphelins de cette catégorie.

Maintenant, je ne suis pas sûr de savoir comment manipuler le paramètre en fonction d'un autre paramètre. Par exemple 'id' dans $ this-> db-> select ('id, name') ;.

L'identifiant changera en fonction de $ db_table.

function checkOrphans($segment, $id, $db_table){ 
$data = array(); 
$this->db->select('id,name'); 
$this->db->where($id,id_clean($segment)); 
$Q = $this->db->get($db_table); 
if ($Q->num_rows() > 0){ 
    foreach ($Q->result_array() as $row){ 
    $data[$row['id']] = $row['name']; 
    } 
} 
$Q->free_result(); 
return $data; 

}

Je pense que je peux utiliser $ db_table. Par exemple $ db_table est omc_categories, je peux utiliser la partie categories et ajouter à id.

Catégories_id.

Quelqu'un peut-il me dire comment le faire s'il vous plaît? J'utilise codeigniter, mais la question est purement php.

Répondre

1

Vous pouvez obtenir le nom identifiant ainsi:

$id_name = preg_replace('/.*_(.*)/', '${1}_id', $db_table); 

puis

$this->db->select($id_name . ',name'); 
+0

Je veux choisir id et le nom ainsi. – shin

+0

Édité ma réponse –

Questions connexes