Darse de alta en la web | Recuperar password   
Inicio / Foros / PHP / como recuperar relaciones
1 respuestas recibidas | 37 visitas | Categoría PHP

como recuperar relaciones

Avatar de kaiowa
Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1

(Nivel 1 - 11 posts)

#0 Offline kaiowa Usuario hace 7días 0h  
Buenas,

Estoy intentando recuperar las relaciones entre tablas desde php. He mirado en la bbdd de schema pero no lo encuentro. Lo que quiero hacer es saber si un campo de una tabla tiene una relacion con otra tabla.

¿Alguna idea de como hacerlo?

Re: como recuperar relaciones

Avatar de krowork
Nivel 3 Nivel 3 Nivel 3 Nivel 3 Nivel 3 Nivel 3 Nivel 3

(Nivel 3 - 199 posts)

#1 Offline krowork Usuario hace 6días 19h  
Hola kaiowa,

Si lo que buscas son claves foráneas yo utilizo esto:

Código PHP


<?php
list(,$create)=mysql_fetch_row(mysql_query('SHOW CREATE TABLE nombre_de_tabla'));

$pos=strrpos($create,'PRIMARY KEY');
$create=substr($create,$pos+11);//reducimos la cadena para que sea más rápido su procesamiento
$pos=0;
while((
$pos=strpos($create,'FOREIGN KEY',$pos))!==false){
    
$pos=strpos($create,'(',$pos);
    
$pos2=strpos($create,')',$pos);

    
$trozo=substr($create,$pos+1,$pos2-$pos-1);

    
$coincidencias=array();
    
preg_match_all('/`([^`]*)`/',$trozo,$coincidencias);

    
$campos_contectados_de_la_tabla=$coincidencias[1];

    
$pos=strpos($create,'`',$pos2);
    
$pos2=strpos($create,'`',$pos+1);

    
$tabla_con_la_que_esta_conectada=substr($create,$pos+1,$pos2-$pos-1);

    
$pos2=strpos($create,"(",$pos2);
    
$pos=strpos($create,")",$pos2); //$pos llega hasta aqui
    
$trozo=substr($create,$pos2+1,$pos-$pos2-1);
    
preg_match_all('/`([^`]*)`/',$trozo,$coincidencias);

    
$campos_con_los_que_esta_conectada=$coincidencias[1];
}
?>

http://krowork.blogspot.com

Responder mensaje

Para poder participar debes estar registrado e identificado. Si no estás registrado como usuario de PHP-Hispano, :: Registrar ::
Login / Password   

Web alojada en Zilos

php-hispano.net 2002 - 2008 | XHTML 1.0
Datos Legales | Webmaster