Foros del Web » Programando para Internet » PHP »

Como logro halar informacion de una Bd en otro sitio

Estas en el tema de Como logro halar informacion de una Bd en otro sitio en el foro de PHP en Foros del Web. Hola Amigos. Tengo en mi sitio un sistema de bienes raices (php MySQL) que permite meter propiedades por usuario. Ahora tengo un usuario interesado en ...
  #1 (permalink)  
Antiguo 12/02/2006, 11:35
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.006
Antigüedad: 15 años, 11 meses
Puntos: 11
Como logro halar informacion de una Bd en otro sitio

Hola Amigos.

Tengo en mi sitio un sistema de bienes raices (php MySQL) que permite meter
propiedades por usuario. Ahora tengo un usuario interesado en tener una
página web propia, pero que muestre las propiedades de mi sitio que pertenescan a él.

De modo que él pueda meter las propiedades usando mi sitio web y la infraestrucuctura ahi, de modo que las propiedades aparescan en mi sitio web, pero también el su sitio web.

O sea, en su sitio web tendrá un link a casas, todas las casas que sean
mostradas provienen de mi sitio web junto con las fotos y todo.

Es eso posible?

Se puede hacer un select en otro sitio (www.otrositio.com) de la base de datos de mi sitio web SIN usar iframes?

Gracias maestros.
  #2 (permalink)  
Antiguo 12/02/2006, 12:25
 
Fecha de Ingreso: diciembre-2005
Mensajes: 122
Antigüedad: 12 años
Puntos: 0
lo mas sencillo ( e inseguro) es que ese usuario tenga los permisos para entrar a tu bd, pero la otra forma de lograrlo es usando fsockopen (o CURL, si esta disponible) para abrir una conexión a tu sitio, obtener un resultado y mostrarlo. esto último es mas complejo ya que requiere un poco de conocimiento en transacciones http.
  #3 (permalink)  
Antiguo 12/02/2006, 12:36
 
Fecha de Ingreso: abril-2003
Mensajes: 201
Antigüedad: 14 años, 8 meses
Puntos: 0
para eso es necesario tener IP propia o no?

Tb te puede servir el uso de rss
  #4 (permalink)  
Antiguo 12/02/2006, 13:04
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.006
Antigüedad: 15 años, 11 meses
Puntos: 11
Cita:
Iniciado por plus_ultra
lo mas sencillo ( e inseguro) es que ese usuario tenga los permisos para entrar a tu bd, pero la otra forma de lograrlo es usando fsockopen (o CURL, si esta disponible) para abrir una conexión a tu sitio, obtener un resultado y mostrarlo. esto último es mas complejo ya que requiere un poco de conocimiento en transacciones http.
Bueno, si yo soy el administrador y diseñador del otro sitio web, entónces creo que no habría problemas con darle permisos para entrar en mi BD.

Si lo hago así: ¿Cómo lograrlo?
sería hacer una conexion?

Por ejemplo, estoy en el otro sitio web, voy al index.php y escribo:

$server ="localhost"; ==> $server =www.MiSitio.com;
$user ="Usuario";
$pwd = "Password";
$dbase ="DbName";

@ $db=mysql_connect ($server, $user, $pwd);
if (!$db){
error_handling($sql,mysql_error());
}
mysql_select_db ($dbase);


Y luego de ésto el resto del script?

Es así?

Con eso me conectaría?

Gracias.
  #5 (permalink)  
Antiguo 12/02/2006, 13:15
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
Creo que la opción más práctica es la que sugirió 4sc1r. En realidad, ni siquiera hace falta que uses RSS (que es un XML con cierta estructura predefinida); con un XML común y corriente, cuya estructura definas vos, vas bien, porque seguramente vos vas a generarlo y vos vas a programar la página que lo lee, ¿no?

La idea es la siguiente. Con un script generás un XML con las propiedades de ese cliente. Cada vez que ese cliente modifica alguna de sus propiedades (o borrar o agrega alguna), actualizás (reescribís) ese archivo XML. Desde el otro sitio, sólo tenés que leer el XML y vas a tener todos los datos que necesites, sin darle acceso directo a tu base de datos (lo cual podría llegar a ser peligroso porque el script estaría en su server y podría ser modificado por alguien que no fueras vos...)

Por ejemplo:

Código PHP:
<?php
mysql_connect
($host_bd,$usr_bd,$pass_bd);
mysql_select_db($base_bd);
$consultaPropiedadesmysql_query("select lo que fuera");
if (
$consultaPropiedades) {
    
$xml "<?xml version='1.0' encoding='iso-8859-1'?>";
    
$xml .= "<propiedades>";
    while(
$rsProp mysql_fetch_array($consultaPropiedades)) {
        
$xml .= "<propiedad id=\"".$rsProp['col_correspondiente']."\" link_img=\"http://ruta_hasta_carpeta_img_de_tu_sitio/".$rsProp['col_correspondiente']."\">";
    
        
$xml .="<![CDATA[".$rsProp['col_descripcion']."]]>"// acá iría una descripción, por ejemplo, que puede contener codigo html
        
$xml .= "</propiedad>";
    }
    
$xml .= "</propiedades>";
    if (
$fp fopen("propiedades_cliente.xml","wb")) {
        
fwrite($fp,$xml);
        
fclose($fp);
    }
}
?>
Entonces, cada vez que se haga algún cambio, llamás a este script para actualizar los datos del xml de tu cliente.

Desde el otro sitio, nada más tenés que leer ese xml y ya vas a tener disponible toda la información necesaria. Podrías leerlo desde php o si querés, con javascript, usando el objeto XmlHttpRequest (aunque con php no necesitás que el usuario del sitio tenga habilitado JS).


Suerte
Califa
  #6 (permalink)  
Antiguo 12/02/2006, 13:53
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.006
Antigüedad: 15 años, 11 meses
Puntos: 11
Pregunta:

dices que:

"Entonces, cada vez que se haga algún cambio, llamás a este script para actualizar los datos del xml de tu cliente."

Es Actualizar es manual? o se hace automáticamente? El caso es que posiblemente y esperadamente llegue el momento donde la cantidad de clientes suba tanto que si es manualmente ese actualizar, mejor busco otra opción automática.
  #7 (permalink)  
Antiguo 12/02/2006, 14:13
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
No hace falta que sea manual. Si escribís en la barra de direcciones del navegador la dirección del script, te genera el xml manualmente. Siempre va a ser una opción. Pero, te decía "llamar" desde otro script a este que genera el xml, para que sea automático.

Por ejemplo, supongamos que tu cliente agrega una propiedad. A tu cliente lo tenés identificado. Bueno, entonces, además de hacer un insert, tendrías que hacer un condicional para que si quien hizo el insert es ese cliente en particular (o si alguien agregó información a ese cliente, no sé cómo está armada la aplicación), llamar además al otro script que genera el xml. La manera más rápida y menos elegante es un simple header("location:script_que_genera_xml.php"). Hay otras formas para hacer esto en "segundo plano", pero todavía no las investigué mucho. Bueno, al terminar exitosamente el insert, entonces, se redirige al script que genera el xml. Y de ahí, nuevamente lo redirigís a donde necesites. O sea, sólo estás agregando un paso intermedio, y sólo en caso de que se trate de este cliente.

Antes:

--> página de administración de propiedades
--> consulta BBDD
--> ok
--> redirigís a página de administración de propiedades

Ahora:

--> página de administración de propiedades
--> consulta BBDD
--> ok
--> redirigís a script que genera xml
--> ok
--> redirigís a página de administración de propiedades

Eventualmente, si más clientes necesitaran este servicio, podrías llamar a ese script con un parámetro, por ej, el id del cliente, y el mismo script te serviría para cualquier cliente (porque va a buscar sólo las propiedades de ese cliente en particular).

Para los update's y los delete's, el procedimiento es el mismo, solo cambia la consulta.

De esta manera, sólo actualizás el xml cuando es realmente necesario, es decir, cuando se hizo algún cambio en las datos de un cliente que use el xml para su sitio.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:42.