Jump to content

Recommended Posts

I've got a problem in a script i'm writing.. I don't understand how to easily pull information out of multiple returned rows.

 

Up until now, I've been pulling information from my database with mysql_fetch_object($result)

where $result is obviously the result of my query.. mainly because I can still work with the field names in my database - which is a lot easier than an array of indexes.

 

My SQL Query LEFT JOIN's several tables.. we'll call them

Personnel_info, Dependant_Info, and Spouse_Info

 

If my query returned a visual table it would look like the following

 

Personnel_Info                        Dependant_Info                              Spouse_Info

pi_fname, pi_lname, pi_address    di_fname, di_lname, di_sex        si_fname, si_lname, si_anniversary

James    Jones    333 Street    Mike      Jones    M              Sarah          Jones    2000-01-01

James    Jones    333 Street    Anne      Douglass F              Sarah          Jones      2000-01-01

James    Jones    333 Street    David    Jones    M              Sarah          Jones      2000-01-01

 

I can access the first row of the returned result just fine,

however I don't know - and have been unsuccessful at finding the answer on - how to access the other returned rows on a mysql_fetch_object statement..

 

So basically - I am unable to display the child dependants of James Jones (both Anne and David) (object class) or I get James Jones and Sarah Jones several times through procedural code..

 

I'm dealing with around 210 different columns in this one query through about 14 table joins and - as far as I see it using objects is the easiest way to pull the information and use it the way I see fit.

 

It worked well for all the tables that are guaranteed to display only one row of information.  :-\

 

Anything?

 

-Kedaeus

 

 

             

 

 

 

 

I thought that as well..

 

However.. James Jones (ssn) is a 1 to many key..

 

So James jones has 3 kids.. and 1 wife..

 

When I run my query..

 

SELECT * from personnel_info

LEFT JOIN dependant_info

ON personal_info.ssn = dependant_info.sponsor_id

LEFT JOIN spouse_info

ON personal_info.ssn = spouse_info.sponsor_id

WHERE personal_info.ssn = '555-55-5555'

 

It pulls up the information I want and lists one row per child.. with redundant information except where the children information is different.

 

It may be wrong - I couldn't tell you as I lack experience - but i'm getting the information I need.

 

Maybe I shouldn't be pulling all the information at once..

 

Even still if I broke the dependants and the spouse off of that query and ran them in separate queries

 

$query = "SELECT * from dependant_info where sponsor_id = $personnel_ssn";

$result = mysql_fetch_object($query);

 

There would still be three rows of information that i'm supposed to be fetching..

 

I suppose my ultimate question is: are there three distinct objects created by doing so? Or.. How in the world do I access the other returned rows when fetching the information as an object?

 

Or should I just use procedural code with a while loop and if statements?

 

 

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.