Hello everybody,

Having an issue where I am getting unexpected results with a simple query
and at a lost to explain why.

At the end is my code.  The problem I believe though I have narrowed down to
the following statement.

1.  When I run SELECT accounts.id, accounts.action, people.last,
people.first, people.rank FROM accounts JOIN people WHERE (accounts.account
= people.id OR accounts.id = people.id) AND accounts.status='submitted';
directly into mysql (NOT USING PHP) I get the proper results.  (1 row)

2.  When I run it below using PHP I get unexpected results.  (All 4 rows)

Database looks like:

-----ACCOUNTS-------
ID      ACTION  STATUS  DATE_SUBMITTED  ACCOUNT
1       create  pending NULL                    56
2       modify  pending NULL                    58      
3       new             pending NULL                    65
4       delete  submitted       2002-09-10              89

----PEOPLE----------
ID      LAST    FIRST   RANK
56      A       GUY     NULL
58      B       GUY     NULL
65      C       GUY     NULL
89      D       GUY     NULL

AFTER JOIN STATEMENT SHOULD LOOK LIKE: (when ran directly with mysql
bypassing PHP)

ID      ACTION  LAST    FIRST   RANK
4       delete  D       GUY     NULL

Instead I am getting (when  using below code): (when ran with PHP)
ID      ACTION  LAST    FIRST   RANK
1       create  A       GUY     NULL
2       modify  B       GUY     NULL
3       new             C       GUY     NULL
4       delete  D       GUY     NULL

Debugging:

Have did mysql_num_rows($query); on the JOIN query and it returns 1 so it is
returning the proper number of rows.
Have also added an iterator to the while($row) to verify loop count == row
count.  This also returns 1=1

Yet somehow the 'users' file has ALL 4 entries in it at end of the run.

At a complete loss how this can be so.

Any help on this would be appreciated.

Thanks,

-Peter

##### START CODE ###########

          require_once 'auth.php';
          $date=date("ymd");
          if (isset($submit)){
            foreach ($submit as $value){
              digit($value);
              mysql_query("UPDATE accounts SET status='submitted',
date_submitted='$date' WHERE id=$value;");
            }
          }
          $query=mysql_query("SELECT site, address FROM unit WHERE
name='$unit'");
          $row=mysql_fetch_array($query);
          extract($row);
          $query=mysql_query("SELECT accounts.id, accounts.action,
people.last, people.first, people.rank FROM accounts JOIN people WHERE
(accounts.account = people.id OR accounts.id = people.id) AND
accounts.status='submitted';");
          if (mysql_num_rows($query)>0){
            $fp=fopen('users', 'w');
            while ($row=mysql_fetch_array($query)){
              extract($row);
              $s="MAILBOX";
              $s.="\t$action";
              $s.="\tKFOR\\$last".substr($first,0,1);
              $s.="\t$last".substr($first,0,1);
              $s.="\t$first";
              $s.="\t$last";
              $s.=isset($middle)?"\t$middle":'';
              $s.="\t$rank";
              $s.="\tBONDSTEEL2";
              $s.="\t$last, $first";
              $s.=isset($middle)?"$middle.":'';
              $s.="  $rank";
              $s.=$rank=='CIV'?$unit:'';
              $s.="\t$phone";
              $s.="\t$unit";
              $s.="\t$address, $site";
              $s.="\tYugo";
              $s.="\t09340";
              $s.="\tAE";
              $s.="\tAPO\n";
              fwrite($fp, $s);
            }
            fclose($fp);
            unlink('users');
          }


##################################
Peter Thoenen - Systems Programmer
Commercial Communications
Camp Bondsteel, Kosovo
##################################

"Stumbled Upon"...heh (Score:5, Funny) /.
by $carab on 23:00 23 August 2002 (#4131637)

"ForensicTec officials said they stumbled upon the military networks about
two months ago, while checking on network security for a private-sector
client."

Someone new to a Dvorak probably tried to type in "lynx
http://www.google.com"; but instead got "nmap -v -p 1-1024 -sS -P0 army.mil
-T paranoid".

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to