Solved

Why my array output is wrong

Posted on 2008-06-12
8
174 Views
Last Modified: 2008-06-15
PHP

Why my array output is wrong

i have this code in code snippet

my result should be
supermarketname | Amount_of_candy | Amount_of_milo | AMount_of_milk |...
    coles       |    1.00000      |   5.00000         |    2.00000     |...
    target      |    5.00000      |  10.00000      |    3.00000     |...
...
   
but i get result as below
      
coles | "1.00000"|target| "5.00000"| parkson| "2.00000"... and so on

other words my amount become
coles | array[0] | target | array[1] | parkson | array[2] .. and so on

this is so wrong as you can see from my code GetAmount(()

coles should follow by array[0],array[1] and array[2]

but dont know why array[1] has go to target which is wrong
how to do this?

function GetAmount()

{

$ItemID = array(1234,6545,5468,9856,"no stock",4561,5466);

$arrayElement[3] = "no stock";

$supermarketID = 21;

 

 $i = 0;

 $j = 0;

 

 for ($j = 0; $j < sizeof($ItemID); $j++)

  {

 if (($ItemID[$j] != $arrayElement[3]) 

	{

	 $query = "SELECT getitem_std_amount( \"$supermarketID\",  \"ItemID[$j]\") AS AMOUNT";

     

	 $result = mysql_query($query);

     if(!$result) die("Query didn't work. " . mysql_error());

    

     $temp = "";   	 

     while($row = mysql_fetch_array($result))

	      {

            $temp = '"'.$row['AMOUNT'].'"';

              } 

              $this->GetAmountReturn[$i++] .= $temp ; 

              }	 

   	}  

	else

    {

      $this->GetAmountReturn[$i] .=  "\"Full Time Employees\" |";

  	  $i++;

	}

   }

 

 Wishing you a very happy birthday and a year full of things you love 

function joinSUPERMARKETNAMEnAMOUNT()

{

//SUPERMARKETNAME select value is from another function

 

 foreach(($this->GetSupermarketNameReturn_value as $i => $SupermarketName)

	{

         $data1 = "{$SupermarketName} | {$this->GetAmountReturn[$i]}  "; 

	  print_r( $data1);

	 }

        }  

}

Open in new window

0
Comment
Question by:firekiller15
  • 4
  • 3
8 Comments
 
LVL 48

Expert Comment

by:hernst42
ID: 21776465
Try replacing

              $this->GetAmountReturn[$i++] .= $temp ;
              }  
        }  
        else
    {
      $this->GetAmountReturn[$i] .=  "\"Full Time Employees\" |";
          $i++;
        }
with

              $this->GetAmountReturn[$j] .= $temp ;
              }  
        }   else    {
      $this->GetAmountReturn[$j] .=  "\"Full Time Employees\" |";
        }
0
 

Author Comment

by:firekiller15
ID: 21776641
change it to $j doesnt make any different?
0
 
LVL 48

Expert Comment

by:hernst42
ID: 21776780
please post the modified code
0
 

Author Comment

by:firekiller15
ID: 21776850
function GetAmount()
{
$ItemID = array(1234,6545,5468,9856,"no stock",4561,5466);
$arrayElement[3] = "no stock";
$supermarketID = 21;
 
 
 
 for ($j = 0; $j < sizeof($ItemID); $j++)
  {
 if (($ItemID[$j] != $arrayElement[3])
      {
       $query = "SELECT getitem_std_amount( \"$supermarketID\",  \"ItemID[$j]\") AS AMOUNT";
     
       $result = mysql_query($query);
     if(!$result) die("Query didn't work. " . mysql_error());
   
     $temp = "";         
     while($row = mysql_fetch_array($result))
            {
            $temp = '"'.$row['AMOUNT'].'"';
              }
              $this->GetAmountReturn[$j] .= $temp ;
              }       
         }  
      else
    {
      $this->GetAmountReturn[$j] .=  "\"Full Time Employees\" |";
          
      }
   }
 
 Wishing you a very happy birthday and a year full of things you love
function joinSUPERMARKETNAMEnAMOUNT()
{
//SUPERMARKETNAME select value is from another function
 
 foreach(($this->GetSupermarketNameReturn_value as $i => $SupermarketName)
      {
         $data1 = "{$SupermarketName} | {$this->GetAmountReturn[$i]}  ";
        print_r( $data1);
       }
        }  
}
 
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 48

Expert Comment

by:hernst42
ID: 21776909
ok slowly I get the datastructure. The replace with $j is wrong, replace the $j in those two lines with $supermarketID
0
 

Author Comment

by:firekiller15
ID: 21777092
is still the same
0
 
LVL 48

Expert Comment

by:hernst42
ID: 21777124
hm no clue and without knowing you datastructures it can get very complicated.
0
 
LVL 29

Accepted Solution

by:
fibo earned 250 total points
ID: 21785490
Looking at << $query = "SELECT getitem_std_amount( \"$supermarketID\",  \"ItemID[$j]\") AS AMOUNT";>>
and using the sample data you are testing with
$ItemID = array(1234,6545,5468,9856,"no stock",4561,5466);
$arrayElement[3] = "no stock";
$supermarketID = 21;

The first run will give SELECT getitem_std_amount( "21",  "1234") AS AMOUNT;
The second SELECT getitem_std_amount( "21",  "5454") AS AMOUNT;
and 5th one SELECT getitem_std_amount( "21",  "no stock") AS AMOUNT;

What is precisely the result of running $result = mysql_query($query) ?


0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
php call to a non-object 3 31
Php pie charts 3 26
unset shopping cart session 15 29
A form to still have contents even if some are wrong 10 46
Password hashing is better than message digests or encryption, and you should be using it instead of message digests or encryption.  Find out why and how in this article, which supplements the original article on PHP Client Registration, Login, Logo…
Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
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.

919 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

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now