Re: [PHP] Problems with Arrays and print and echo

2006-04-09 Thread Michael Felt

John Wells wrote:

echo "$this->name[5]\n";
echo "$this->ID[5]\n";
$a1 = $this->name;
$a2 = $this->ID;
echo "\n$a1[5] $a2[5]\n";



use curly brackets to help PHP understand what you're after:

echo "{$this->name[5]}\n";

When you're in a string like this, PHP has a hard time knowing when
you're wanting to access a variable, and when you're simply trying to
output text.  Using curly brackets clears it up.

HTH,
John W

Thanks.

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



Re: [PHP] Problems with Arrays and print and echo

2006-04-08 Thread John Wells
> > echo "$this->name[5]\n";
> > echo "$this->ID[5]\n";
> > $a1 = $this->name;
> > $a2 = $this->ID;
> > echo "\n$a1[5] $a2[5]\n";

use curly brackets to help PHP understand what you're after:

echo "{$this->name[5]}\n";

When you're in a string like this, PHP has a hard time knowing when
you're wanting to access a variable, and when you're simply trying to
output text.  Using curly brackets clears it up.

HTH,
John W

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



Re: [PHP] Problems with Arrays and print and echo

2006-04-08 Thread Michael Felt

Michael Felt wrote:
echo "\n". $this->name[5] . " " . $this->ID[5]. "\n";
This give the same output as:
$a1 = $this->name;
$a2 = $this->ID;
echo "\n$a1[5] $a2[5]\n";

Looks like I may need to use the '.' constructor more often

Who can explain this (please)?


Michael Felt wrote:

OK . a rewrite, bit shorter...

1. A class construct with two arrays:

var $name;
var $ID;

function init($id) {
$this->name = array();
$this->ID = array();

.
# firther in code assignment done from a mysql database:
while ($max--)
read
$this->name[$max] = $row[0];
$this->ID[$max]   = $row[1];
$Name[$max] = $row[0];
$ID[$max]   = $row[1];
}

and now some debug code
print_r($this->name);
print_r($this->ID);
echo "\n$Name[5]\n";

echo "$this->name[5]\n";
echo "$this->ID[5]\n";
$a1 = $this->name;
$a2 = $this->ID;
echo "\n$a1[5] $a2[5]\n";

Output:
Array
(
[6] => 8-TFDX
[5] => B-E3KQ
[4] => BR-6XP
[3] => G5ED-Y
[2] => O-LR1H
[1] => UL-4ZW
[0] => Y5J-EU
)
Array
(
[6] => 3312
[5] => 3307
[4] => 3311
[3] => 3310
[2] => 3309
[1] => 3313
[0] => 3308
)

B-E3KQ

Array[5]
Array[5]

B-E3KQ 3307


chris smith wrote:



var $name = array(); (or '' or ) ?

--
Postgresql & php tutorials
http://www.designmagick.com/


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



Re: [PHP] Problems with Arrays and print and echo

2006-04-08 Thread Michael Felt

Michael Felt wrote:

OK . a rewrite, bit shorter...

1. A class construct with two arrays:

var $name;
var $ID;

function init($id) {
$this->name = array();
$this->ID = array();


# firther in code assignment done from a mysql database:
while ($max--)
read
$this->name[$max] = $row[0];
$this->ID[$max]   = $row[1];
$Name[$max] = $row[0];
$ID[$max]   = $row[1];
}

and now some debug code
print_r($this->name);
print_r($this->ID);
echo "\n$Name[5]\n";

echo "$this->name[5]\n";
echo "$this->ID[5]\n";
$a1 = $this->name;
$a2 = $this->ID;
echo "\n$a1[5] $a2[5]\n";

Output:
Array
(
[6] => 8-TFDX
[5] => B-E3KQ
[4] => BR-6XP
[3] => G5ED-Y
[2] => O-LR1H
[1] => UL-4ZW
[0] => Y5J-EU
)
Array
(
[6] => 3312
[5] => 3307
[4] => 3311
[3] => 3310
[2] => 3309
[1] => 3313
[0] => 3308
)

B-E3KQ

Array[5]
Array[5]

B-E3KQ 3307

chris smith wrote:



var $name = array(); (or '' or ) ?

--
Postgresql & php tutorials
http://www.designmagick.com/


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



Re: [PHP] Problems with Arrays and print and echo

2006-04-08 Thread Michael Felt

chris smith wrote:

On 4/7/06, Michael Felt <[EMAIL PROTECTED]> wrote:


Slowly I am getting the output I want.

Trying to use "dynamic" arrays, does creat the array I want, but getting
the info is sometimes surprising.

I notice a difference between arrays used locally in a function, and
arrays used as a 'var' in a class function (all in PHP 4 atm).

Code snippet:
echo "ROWS returned are: $max\n";
$this->count = $max;

while ($max--) {
$row = mysql_fetch_row($result);
$this->name[$max] = sprintf("%s", $row[0]);
$Name[$max] = sprintf("%s", $row[0]);
echo "init \$this->Xame[$max] = $row[0]";
echo " $Name[$max] $this->name[$max]\n";
$regionID[$max] = $row[1];
$constellationID[$max] = $row[2];
$this->ID[$max] = $row[3];
printf("%d:%d/%d/%s\n",$max,$regionID[$max],$constellationID[$max],
   $this->name[$max]);
}

Line wrap is messing things up a bit.
Was trying sprintf to see if the was a buffer problem coming from mysql.
Problem seems to be the same, regardless.
Also, the names changes ($this->name[] versus $Name[]) are deliberate,
for just in case


Output (debuging):
ROWS returned are: 7
init $this->Xame[6] = 8-TFDX 8-TFDX Array[6]



Is the problem that you're getting array[6] instead of the value?
Explain what you see and what you expect to see.

What is var $name originally set to, ie:


$row = mysql_fetch_row($result);
$this->name[$max] = sprintf("%s", $row[0]);
$Name[$max] = sprintf("%s", $row[0]);

Is the actual assignment of variables. What surprises me is that the 
'local' variable echos what I expect, but the 'class' variable does not.


function init($id)
{
$this->ID[0] = ERROR;
$this->name[0] = "";

Hope this answers your question.

And yes, I am not happy the the 'Array[X]' output, I am expecting the 
value, not what it is.


I have already tried establishing an array type early in the function...



var $name = array(); (or '' or ) ?

--
Postgresql & php tutorials
http://www.designmagick.com/


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



Re: [PHP] Problems with Arrays and print and echo

2006-04-08 Thread chris smith
On 4/7/06, Michael Felt <[EMAIL PROTECTED]> wrote:
> Slowly I am getting the output I want.
>
> Trying to use "dynamic" arrays, does creat the array I want, but getting
> the info is sometimes surprising.
>
> I notice a difference between arrays used locally in a function, and
> arrays used as a 'var' in a class function (all in PHP 4 atm).
>
> Code snippet:
>  echo "ROWS returned are: $max\n";
>  $this->count = $max;
>
>  while ($max--) {
>  $row = mysql_fetch_row($result);
>  $this->name[$max] = sprintf("%s", $row[0]);
>  $Name[$max] = sprintf("%s", $row[0]);
> echo "init \$this->Xame[$max] = $row[0]";
> echo " $Name[$max] $this->name[$max]\n";
>  $regionID[$max] = $row[1];
>  $constellationID[$max] = $row[2];
>  $this->ID[$max] = $row[3];
> printf("%d:%d/%d/%s\n",$max,$regionID[$max],$constellationID[$max],
> $this->name[$max]);
>  }
> 
> Line wrap is messing things up a bit.
> Was trying sprintf to see if the was a buffer problem coming from mysql.
> Problem seems to be the same, regardless.
> Also, the names changes ($this->name[] versus $Name[]) are deliberate,
> for just in case
> 
>
> Output (debuging):
> ROWS returned are: 7
> init $this->Xame[6] = 8-TFDX 8-TFDX Array[6]

Is the problem that you're getting array[6] instead of the value?
Explain what you see and what you expect to see.

What is var $name originally set to, ie:

var $name = array(); (or '' or ) ?

--
Postgresql & php tutorials
http://www.designmagick.com/

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



[PHP] Problems with Arrays and print and echo

2006-04-07 Thread Michael Felt

Slowly I am getting the output I want.

Trying to use "dynamic" arrays, does creat the array I want, but getting 
the info is sometimes surprising.


I notice a difference between arrays used locally in a function, and 
arrays used as a 'var' in a class function (all in PHP 4 atm).


Code snippet:
echo "ROWS returned are: $max\n";
$this->count = $max;

while ($max--) {
$row = mysql_fetch_row($result);
$this->name[$max] = sprintf("%s", $row[0]);
$Name[$max] = sprintf("%s", $row[0]);
echo "init \$this->Xame[$max] = $row[0]";
echo " $Name[$max] $this->name[$max]\n";
$regionID[$max] = $row[1];
$constellationID[$max] = $row[2];
$this->ID[$max] = $row[3]; 
printf("%d:%d/%d/%s\n",$max,$regionID[$max],$constellationID[$max],

   $this->name[$max]);
}

Line wrap is messing things up a bit.
Was trying sprintf to see if the was a buffer problem coming from mysql.
Problem seems to be the same, regardless.
Also, the names changes ($this->name[] versus $Name[]) are deliberate, 
for just in case



Output (debuging):
ROWS returned are: 7
init $this->Xame[6] = 8-TFDX 8-TFDX Array[6]
6:1003/2044/8-TFDX
init $this->Xame[5] = B-E3KQ B-E3KQ Array[5]
5:1003/2044/B-E3KQ
init $this->Xame[4] = BR-6XP BR-6XP Array[4]
4:1003/2044/BR-6XP
init $this->Xame[3] = G5ED-Y G5ED-Y Array[3]
3:1003/2044/G5ED-Y
init $this->Xame[2] = O-LR1H O-LR1H Array[2]
2:1003/2044/O-LR1H
init $this->Xame[1] = UL-4ZW UL-4ZW Array[1]
1:1003/2044/UL-4ZW
init $this->Xame[0] = Y5J-EU Y5J-EU Array[0]
0:1003/2044/Y5J-EU
++
Thanks for your ideas, help, etc..

Maybe it is somethign as simple as "can't do that with echo", but when 
the arrays are all single element ( foo_array[0] is only element ) all 
statements work as expected.


regards,
Michael

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