Andrea,

> I am a serious newbie (like less than two weeks & never programmed before),
> so I hope my code doesn't suck too bad & this isn't a really bad question...
> but here goes...
>
> I would like to modify this query so that it doesn't return the username,
> realname, and office results each time. The way the query is now, I see the
> username, realname & office results duplicated for each 'alias' result that
> is in the data. Instead, I'd like to see the username, realname & office
> only once & a list of the associated 'alias' (es) underneath it. If anyone
> can help w/ some "semi-real" code, that would be great.  Since I'm new, it
> really helps to have code that actually reflects my field names so that I
> can learn from it.  I appreciate any help you can provide.  Thanks in
> advance!  ~Andrea
> ____________________________________
>
> $query = "select users.username, users.realname, users.office,
> users.location, users.office_phone, users.alt_phone, users.password,
> alias.alias from users, alias
> where users.username like '%".$searchterm."%'
> and users.username = alias.username";
>
> $result = mysql_query($query);
>
> $num_results = mysql_num_rows($result);
>
> echo "<p>Number of Users found: ".$num_results."</p>";
>
> for ($i=0; $i <$num_results; $i++){
> $row = mysql_fetch_array($result);
> echo "<p><strong>".($i+1).". Username: ";
> echo htmlspecialchars( stripslashes($row["username"]));
> echo "<br>Real Name: ";
> echo htmlspecialchars( stripslashes($row["realname"]));
> echo "<br>Office: ";
> echo htmlspecialchars( stripslashes($row["office"]));
> echo "<br>Alias: ";
> echo htmlspecialchars( stripslashes($row["alias"]));

With respect to your request for code, in fact you need to take two steps: 1 to 
understand the program/script
logic required to achieve your aims, then 2 code that logic in PHP. One of the tools 
for the first step is
"pseudo-code". This offers an answer to your (logic) question in pseudo-code (with 
regrets that lack of time
precludes the next step):

If you think about it, your display has (probably) a main heading, and maybe a footer. 
What lies in between
(apart from white space) is groups of lines, where each group is defined/identified by 
the username (etc). You
want to display the groups so that the first line identifies the group, and any 
ensuing lines within the group
do not duplicate the information.

So think about writing the first line in a group. Then how would you display the 
ensuing lines in each group?
How would you know if the next line belongs with the same group, or starts a new one? 
Apart from ensuring that
you use all of the rows in the resultset (and no more!?) that's about the nub of it...

retrieve first row from resultset
while not eod
  note group's username
  display (full) line
  retrieve next row
  while line's username = group's username and not eod
    display line (without username etc)
    retrieve next row
    end while line
  end while not eod

NB "eod" = end of data
(rather than working of num-rows it works off the boolean response of a call to 
retrieve from the resultset, eg
mysql_fetch_array())

Regards,
=dn



-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to