2010-08-02 9 views
0

convertir la requête suivante en cakephpquery.Comment connecter deux tables DB différentes en utilisant Cakephp?

"SELECT * FROM user1.user_favourites,esl.esl_lyrics 
WHERE 
    esl_lyrics.id=user_favourites.fav_recordID 
    AND user_favourites.fav_userID=".$user_id." 
    AND user_favourites.fav_widgetID=$wid_id"; 

fichiers modèles sont esl.php et userFavourite.php DB sont user1 et esl. Les tables DB sont user_favourites dans user1 et esl_lyrics dans esl DB.

plz donner details.what changements faire dans esl.php et userFavourite.php

s'il vous plaît Aide-moi ...

+0

Qu'avez-vous déjà essayé? À quoi ressemblent vos fichiers modèles? Avez-vous lu ceci: http://book.cakephp.org/view/1039/Associations-Linking-Models-Together – deceze

Répondre

0

Il sera difficile de déterminer quoi écrire jusqu'à ce que vous pouvez fournir une carte de données pour les différents identifiants que vous utilisez. Puisque vous ne vous conformez pas aux normes de votre SQL, les champs sont tous nommés différents dans les différentes tables. Mais voici ce que je comprends à ce jour:

esl_lyrics.id = user_favorites.fav_recordID 

De votre description, il existe deux modèles. Donc, vous devrez vous assurer que vous avez des relations entre les deux. Cela vous demandera de déterminer s'il s'agit de belongsTo, hasOne, hasMany, etc. Il apparaît également que vous utilisez plusieurs bases de données (schémas), vous devrez donc configurer le fichier database.php pour pouvoir accéder à chacun d'entre eux.

Une fois que tout est configuré, vous devriez être en mesure d'accéder aux données:

$this->Model1->Model2->find('all', array('conditions' => array('Model1.id' => 'Model2.id', 'Model2.user_id' => $user_id, 'Model2.widgetID' => $wid_id))); 

Il retourne un tableau avec les données des deux modèles. Mais jusqu'à ce que vous puissiez partager à quoi ressemblent vos modèles et une cartographie des identifiants, etc., ce sera aussi bien une réponse que vous obtiendrez.

Questions connexes