Solved

Cakephp query 2 tables

Posted on 2010-08-17
6
662 Views
Last Modified: 2013-11-10
Hi all,
I have an issue with Cakephp...

! have a Model ..call it "User", then a controller and a view.

Model1 currently lists records in table "users" but I have another table that has a user_id field and I need to be able to display records from both tables as they are related and should be linking through "users.id" and "othertable.user_id" fields.

In the View, I need to list records using both tables.

How do I do this please?

I need a simple short example so I can understand it as I've been all over the net and none of those samples work for me.

Hope someone can help

Thanks

0
Comment
Question by:error77
  • 3
  • 3
6 Comments
 
LVL 8

Accepted Solution

by:
ropenner earned 500 total points
ID: 33459995
create view my_new_view as select * from users u, othertable o where u.id =o.user_id

this SQL statement will create your view ... however in this example, if user_id cannot be matched to u.id in the USERS table, it will not showup as a row in the view.
0
 
LVL 8

Expert Comment

by:ropenner
ID: 33460005
there are many other ways to do this with JOINS (right, left and inner joins) but I think this is the simplest way for you to start.
0
 
LVL 8

Assisted Solution

by:ropenner
ropenner earned 500 total points
ID: 33460019
If you need to know the syntax in PHP.

<?PHP
# assuming you've connected to a database somewhere before this point.

mysql_query("create view my_new_view as select * from users u, othertable o where u.id =o.user_id");
?>
0
Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

 

Author Comment

by:error77
ID: 33460084
Hmm ... Isn't it done differently with CakePhp?

This is how I've done it:

The Model:

<?php
class User extends AppModel {
 var $name = 'User';
 }
?>

The Controller:

<?php
class UsersController extends AppController {
var $name = 'Users';
function index() {
$this->set('users', $this->User->find('all'));
}
}
?>

And the View:

<?php
foreach ($users as $user):

echo $user['User']['id'];
echo $html->link($user['User']['title'],
array('controller' => 'users', 'action' => 'view', $user['User']['id']));
 endforeach;
?>

So if I wanted to display extra fields from another table where theOtherTable.user_id is the same as user.id ...

How would I do that in Cake please?

thanks.

 





0
 

Author Comment

by:error77
ID: 33461952
Anyone please? It's urgent :o/
0
 

Author Comment

by:error77
ID: 33497218
Hi ropenner,

I am not using the baking tool. Doing it manually.

I'm almost there .. Just need to be able to submit (update) a form into fields from different tables.

Can you please help?


0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Generating table dynamically is the most common issue faced by php developers.... So it seems there is a need of an article that explains the basic concept of generating tables dynamically. It just requires a basic knowledge of html and little maths…
Part of the Global Positioning System A geocode (https://developers.google.com/maps/documentation/geocoding/) is the major subset of a GPS coordinate (http://en.wikipedia.org/wiki/Global_Positioning_System), the other parts being the altitude and t…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question