array search part 2 [message #183752] |
Mon, 18 November 2013 14:10 |
Mr Oldies
Messages: 241 Registered: October 2013
Karma: 0
|
Senior Member |
|
|
I am attempting to search the array for matching entries.
All matches, not just the first.
While the code works fine, the result is not what I want.
$btrack should return the value of six0[$track][0].
Instead, the result shows the array key number.
Even if I change the [0] to [1].
Why?
<?php
$track=$_GET['item'];
echo $track;
$flip=$six0[$track][1];
echo $flip;
echo "<br>";
$max=count($six0);
$arow=0;
while ($max>$arow){
$btrack=$six0[$arow][0];
if ($btrack=$track){echo $btrack;}
$arow++;
}
?>
Result example.
468The Happy Heart Of Paris
468468468468468468468468468468468468468............
|
|
|
|
Re: array search part 2 [message #183754 is a reply to message #183752] |
Mon, 18 November 2013 14:31 |
Mr Oldies
Messages: 241 Registered: October 2013
Karma: 0
|
Senior Member |
|
|
I realized I was searching for the wrong item.
That is why $track was producing the number instead of the string.
Now it works a little better.
|
|
|
Re: array search part 2 [message #183756 is a reply to message #183753] |
Mon, 18 November 2013 14:59 |
Mr Oldies
Messages: 241 Registered: October 2013
Karma: 0
|
Senior Member |
|
|
On Mon, 18 Nov 2013 15:32:38 +0100, Christoph Michael Becker wrote:
> richard wrote:
>
>> if ($btrack=$track){echo $btrack;}
> ^
>
> You may consider using a "linter".
I changed $btrack to $bsong and still got the same result.
= or == made no difference.
|
|
|
Re: array search part 2 [message #183757 is a reply to message #183752] |
Mon, 18 November 2013 15:05 |
Tim Streater
Messages: 328 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
In article <93xuovoqvo59(dot)1wcgm8i5gn2hb$(dot)dlg(at)40tude(dot)net>, richard
<noreply(at)example(dot)com> wrote:
> I am attempting to search the array for matching entries.
> All matches, not just the first.
> While the code works fine, the result is not what I want.
> $btrack should return the value of six0[$track][0].
> Instead, the result shows the array key number.
> Even if I change the [0] to [1].
> Why?
For the 17 billionth time, you thick dope, you have used = instead of ==
> <?php
>
> $track=$_GET['item'];
> echo $track;
>
> $flip=$six0[$track][1];
> echo $flip;
> echo "<br>";
>
> $max=count($six0);
>
> $arow=0;
>
> while ($max>$arow){
>
> $btrack=$six0[$arow][0];
> if ($btrack=$track){echo $btrack;}
> $arow++;
> }
>
>
> ?>
--
Tim
"That excessive bail ought not to be required, nor excessive fines imposed,
nor cruel and unusual punishments inflicted" -- Bill of Rights 1689
|
|
|
Re: array search part 2 [message #183760 is a reply to message #183757] |
Mon, 18 November 2013 16:06 |
Mr Oldies
Messages: 241 Registered: October 2013
Karma: 0
|
Senior Member |
|
|
On Mon, 18 Nov 2013 15:05:52 +0000, Tim Streater wrote:
> In article <93xuovoqvo59(dot)1wcgm8i5gn2hb$(dot)dlg(at)40tude(dot)net>, richard
> <noreply(at)example(dot)com> wrote:
>
>> I am attempting to search the array for matching entries.
>> All matches, not just the first.
>> While the code works fine, the result is not what I want.
>> $btrack should return the value of six0[$track][0].
>> Instead, the result shows the array key number.
>> Even if I change the [0] to [1].
>> Why?
>
> For the 17 billionth time, you thick dope, you have used = instead of ==
>
>> <?php
>>
>> $track=$_GET['item'];
>> echo $track;
>>
>> $flip=$six0[$track][1];
>> echo $flip;
>> echo "<br>";
>>
>> $max=count($six0);
>>
>> $arow=0;
>>
>> while ($max>$arow){
>>
>> $btrack=$six0[$arow][0];
>> if ($btrack=$track){echo $btrack;}
>> $arow++;
>> }
>>
>>
>> ?>
You thicker DOPE! IT MAKES NO FRICKIN DIFFERENCE!
And the examples I have seen at php.net all use a single =.
|
|
|
Re: array search part 2 [message #183761 is a reply to message #183752] |
Mon, 18 November 2013 16:11 |
Mr Oldies
Messages: 241 Registered: October 2013
Karma: 0
|
Senior Member |
|
|
<?php
$track=$_GET['item'];
echo $track;
$asong=$six0[$track][0];
$flip=$six0[$track][1];
echo $flip;
echo "<br>";
$max=count($six0);
echo $max;
echo "<br>";
for ($item=0;$item<=$max;$item++)
{if ($flip==$six0[$item][0]){echo $six0[$item][0]."</br>";}}
?>
This method works, but stops searching when a match has been found.
Is there a way to continue the search when a match has been found?
There are times when songs are liste 2 or more times and with different
artists. So I need to find them all and then recover the one that matches
to the original track.
|
|
|
Re: array search part 2 [message #183762 is a reply to message #183760] |
Mon, 18 November 2013 16:17 |
Christoph Michael Bec
Messages: 207 Registered: June 2013
Karma: 0
|
Senior Member |
|
|
richard wrote:
> You thicker DOPE! IT MAKES NO FRICKIN DIFFERENCE!
> And the examples I have seen at php.net all use a single =.
Generally, there is a big difference between an assignment (=) and a
equality comparison (==). A programmer should know, when to use which.
--
Christoph M. Becker
|
|
|
Re: array search part 2 [message #183771 is a reply to message #183760] |
Mon, 18 November 2013 17:08 |
Peter H. Coffin
Messages: 245 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On Mon, 18 Nov 2013 11:06:52 -0500, richard wrote:
> You thicker DOPE! IT MAKES NO FRICKIN DIFFERENCE!
> And the examples I have seen at php.net all use a single =.
It only doesn't make a difference when some other problem when some
other problem is *also* chewing on your butt. Just because it doesn't
yell "+++ OUT OF CHEESE ERROR % REDO FROM START" doesn't mean its
not a problem.
--
186,000 Miles per Second. It's not just a good idea. IT'S THE LAW.
|
|
|
Re: array search part 2 [message #183772 is a reply to message #183757] |
Mon, 18 November 2013 18:08 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 11/18/2013 10:05 AM, Tim Streater wrote:
> In article <93xuovoqvo59(dot)1wcgm8i5gn2hb$(dot)dlg(at)40tude(dot)net>, richard
> <noreply(at)example(dot)com> wrote:
>
>> I am attempting to search the array for matching entries.
>> All matches, not just the first.
>> While the code works fine, the result is not what I want.
>> $btrack should return the value of six0[$track][0].
>> Instead, the result shows the array key number.
>> Even if I change the [0] to [1].
>> Why?
>
> For the 17 billionth time, you thick dope, you have used = instead of ==
>
A bit of an exaggeration, Tim. It's only been 16,364,196,273 times. :)
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: array search part 2 [message #183773 is a reply to message #183761] |
Mon, 18 November 2013 18:10 |
J.O. Aho
Messages: 194 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 18/11/13 17:11, richard wrote:
> <?php
>
> $track=$_GET['item'];
> echo $track;
>
> $asong=$six0[$track][0];
> $flip=$six0[$track][1];
> echo $flip;
> echo "<br>";
>
> $max=count($six0);
> echo $max;
> echo "<br>";
>
> for ($item=0;$item<=$max;$item++)
> {if ($flip==$six0[$item][0]){echo $six0[$item][0]."</br>";}}
>
> ?>
>
> This method works, but stops searching when a match has been found.
> Is there a way to continue the search when a match has been found?
> There are times when songs are liste 2 or more times and with different
> artists. So I need to find them all and then recover the one that matches
> to the original track.
>
It dosen't stop after finding one match, you have only one match.
Please indent your code better, makes it easier to read and a lot easier
for you to spot errors.
--
//Aho
|
|
|
Re: array search part 2 [message #183777 is a reply to message #183773] |
Mon, 18 November 2013 18:28 |
Denis McMahon
Messages: 634 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On Mon, 18 Nov 2013 19:10:41 +0100, J.O. Aho wrote:
> It dosen't stop after finding one match, you have only one match. Please
> indent your code better, makes it easier to read and a lot easier for
> you to spot errors.
Objection m'lud. He couldn't spot an error in his code if it had a
flashing neon sign pointing at it.
--
Denis McMahon, denismfmcmahon(at)gmail(dot)com
|
|
|
Re: array search part 2 [message #183778 is a reply to message #183777] |
Mon, 18 November 2013 19:03 |
J.O. Aho
Messages: 194 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 18/11/13 19:28, Denis McMahon wrote:
> On Mon, 18 Nov 2013 19:10:41 +0100, J.O. Aho wrote:
>
>> It dosen't stop after finding one match, you have only one match. Please
>> indent your code better, makes it easier to read and a lot easier for
>> you to spot errors.
>
> Objection m'lud. He couldn't spot an error in his code if it had a
> flashing neon sign pointing at it.
I have to admit you are right about that.
--
//Aho
|
|
|
solved (was: array search part 2) [message #183780 is a reply to message #183752] |
Tue, 19 November 2013 02:45 |
Mr Oldies
Messages: 241 Registered: October 2013
Karma: 0
|
Senior Member |
|
|
<?php
$track=$_GET['item'];
$asong=$six0[$track][0];
$flip=$six0[$track][1];
$max=count($six0);
$match=0;
for ($item=0;$item<=$max;$item++){
if ($flip==$six0[$item]['0'])
{if ($six0[$item][2]=$six0[$track][2])
{$match=$item;}}
}
http://mroldies.net/list/decade60.html
The for loop searches through the array for a match first based on name.
Then further matches by label number.
[0]=charted name
[1]=flipside
[2]=label
|
|
|
Re: array search part 2 [message #183781 is a reply to message #183760] |
Tue, 19 November 2013 03:11 |
Doug Miller
Messages: 171 Registered: August 2011
Karma: 0
|
Senior Member |
|
|
richard <noreply(at)example(dot)com> wrote in news:1effhia2fnbeo$.1ts7of1q9m0f7.dlg@
40tude.net:
> You thicker DOPE! IT MAKES NO FRICKIN DIFFERENCE!
Yes, it does. The reason that it *appears* to you that it doesn't is that in this case, you have
*another* error in addition to this one, which prevents your code from working until you have
corrected *both* errors.
> And the examples I have seen at php.net all use a single =.
Post the URLs of a couple of these examples.
|
|
|
Re: array search part 2 [message #183784 is a reply to message #183760] |
Tue, 19 November 2013 08:27 |
Arno Welzel
Messages: 317 Registered: October 2011
Karma: 0
|
Senior Member |
|
|
richard, 2013-11-18 17:06:
> On Mon, 18 Nov 2013 15:05:52 +0000, Tim Streater wrote:
>
>> In article <93xuovoqvo59(dot)1wcgm8i5gn2hb$(dot)dlg(at)40tude(dot)net>, richard
>> <noreply(at)example(dot)com> wrote:
>>
>>> I am attempting to search the array for matching entries.
>>> All matches, not just the first.
>>> While the code works fine, the result is not what I want.
>>> $btrack should return the value of six0[$track][0].
>>> Instead, the result shows the array key number.
>>> Even if I change the [0] to [1].
>>> Why?
>>
>> For the 17 billionth time, you thick dope, you have used = instead of ==
>>
[...]
>>> $btrack=$six0[$arow][0];
>>> if ($btrack=$track){echo $btrack;}
>>> $arow++;
>>> }
>>>
>>>
>>> ?>
>
> You thicker DOPE! IT MAKES NO FRICKIN DIFFERENCE!
> And the examples I have seen at php.net all use a single =.
The examples DO NOT MATTER!
Read THIS:
<http://us3.php.net/manual/en/language.operators.php>
--
Arno Welzel
http://arnowelzel.de
http://de-rec-fahrrad.de
|
|
|
Re: solved [message #183785 is a reply to message #183780] |
Tue, 19 November 2013 13:50 |
Ben Bacarisse
Messages: 82 Registered: November 2013
Karma: 0
|
Member |
|
|
richard <noreply(at)example(dot)com> writes:
> <?php
>
> $track=$_GET['item'];
>
>
> $asong=$six0[$track][0];
> $flip=$six0[$track][1];
>
> $max=count($six0);
>
> $match=0;
>
> for ($item=0;$item<=$max;$item++){
> if ($flip==$six0[$item]['0'])
> {if ($six0[$item][2]=$six0[$track][2])
There's no need to assign something to itself just to test it. The
test:
if ($six0[$item][2]) ...
is probably what you want, though the assignment will create
$six0[$item][2] if it does not already exist, so the two are not exactly
the same.
> {$match=$item;}}
> }
>
> http://mroldies.net/list/decade60.html
>
> The for loop searches through the array for a match first based on name.
> Then further matches by label number.
> [0]=charted name
> [1]=flipside
> [2]=label
You can make the code more self-documenting by using defined constants
for these indexes:
define('FLIPSIDE', 1);
define('LABEL', 2);
...
if ($six0[$item][LABEL]) ...
or by using string indexes directly (e.g. if ($six0[$item]['label']) ...).
--
Ben.
|
|
|
Re: solved [message #183786 is a reply to message #183785] |
Tue, 19 November 2013 14:16 |
Scott Johnson
Messages: 196 Registered: January 2012
Karma: 0
|
Senior Member |
|
|
On 11/19/2013 5:50 AM, Ben Bacarisse wrote:
> richard <noreply(at)example(dot)com> writes:
<snip>
>> {if ($six0[$item][2]=$six0[$track][2])
<snip>
>> {$match=$item;}}
>> }
>>
>> http://mroldies.net/list/decade60.html
>>
>> The for loop searches through the array for a match first based on name.
>> Then further matches by label number.
>> [0]=charted name
>> [1]=flipside
>> [2]=label
>
> You can make the code more self-documenting by using defined constants
> for these indexes:
>
> define('FLIPSIDE', 1);
> define('LABEL', 2);
> ...
> if ($six0[$item][LABEL]) ...
>
> or by using string indexes directly (e.g. if ($six0[$item]['label']) ...).
>
Hello Ben.
Most around here are still trying to get Richard to understand and
implement the difference between 'assignment' and 'comparison'.
Now you are bringing in another level of discipline.
The next thing you will be asking is for him to proof read his code when
he has errors prior to bringing them here.
But I have to admit it does give me some humorous light reading at times.
Scotty
|
|
|
|
Re: solved [message #183788 is a reply to message #183787] |
Tue, 19 November 2013 15:12 |
Thomas 'PointedEars'
Messages: 701 Registered: October 2010
Karma: 0
|
Senior Member |
|
|
Tony Mountifield wrote:
> Ben Bacarisse <ben(dot)usenet(at)bsb(dot)me(dot)uk> wrote:
>> richard <noreply(at)example(dot)com> writes:
>>> <?php
>>>
>>> $track=$_GET['item'];
>>>
>>>
>>> $asong=$six0[$track][0];
>>> $flip=$six0[$track][1];
>>>
>>> $max=count($six0);
>>>
>>> $match=0;
>>>
>>> for ($item=0;$item<=$max;$item++){
>>> if ($flip==$six0[$item]['0'])
>>> {if ($six0[$item][2]=$six0[$track][2])
>>
>> There's no need to assign something to itself just to test it.
>
> It's not being assigned to itself. The destination is indexed by $item
> and the source is indexed by $track.
It is still richard^Wnonsense.
PointedEars
--
When all you know is jQuery, every problem looks $(olvable).
|
|
|
|
Re: solved [message #183790 is a reply to message #183786] |
Tue, 19 November 2013 16:29 |
Ben Bacarisse
Messages: 82 Registered: November 2013
Karma: 0
|
Member |
|
|
Scott Johnson <noonehome(at)chalupasworld(dot)com> writes:
<snip>
> Most around here are still trying to get Richard to understand and
> implement the difference between 'assignment' and 'comparison'.
I try not to post to the poster if you see what I mean. The post
reminded me of a way to make things clearer, and I fondly hope that it
might help others who just lurk here, or who see these things in search
results.
<snip>
--
Ben.
|
|
|
Re: solved [message #183791 is a reply to message #183780] |
Tue, 19 November 2013 16:43 |
Arno Welzel
Messages: 317 Registered: October 2011
Karma: 0
|
Senior Member |
|
|
Am 19.11.2013 03:45, schrieb richard:
> <?php
>
> $track=$_GET['item'];
>
>
> $asong=$six0[$track][0];
> $flip=$six0[$track][1];
>
> $max=count($six0);
>
> $match=0;
>
> for ($item=0;$item<=$max;$item++){
> if ($flip==$six0[$item]['0'])
> {if ($six0[$item][2]=$six0[$track][2])
> {$match=$item;}}
> }
PLEASE format your code properly!
for($item=0; $item <= $max; $item++)
{
if($flip == $six0[$item]['0'])
{
if($six0[$item][2] = $six0[$track][2])
{
$match = $item;
}
}
}
And why this?
if($six0[$item][2] = $six0[$track][2])
Please note: "=" is NOT the same as "=="!
If you want to COMPARE $six0[$item][2] and $six0[$track][2] you MUST write:
if($six0[$item][2] == $six0[$track][2])
--
Arno Welzel
http://arnowelzel.de
http://de-rec-fahrrad.de
|
|
|
Re: solved [message #183792 is a reply to message #183785] |
Tue, 19 November 2013 16:51 |
Mr Oldies
Messages: 241 Registered: October 2013
Karma: 0
|
Senior Member |
|
|
On Tue, 19 Nov 2013 13:50:02 +0000, Ben Bacarisse wrote:
> richard <noreply(at)example(dot)com> writes:
>
>> <?php
>>
>> $track=$_GET['item'];
>>
>>
>> $asong=$six0[$track][0];
>> $flip=$six0[$track][1];
>>
>> $max=count($six0);
>>
>> $match=0;
>>
>> for ($item=0;$item<=$max;$item++){
>> if ($flip==$six0[$item]['0'])
>> {if ($six0[$item][2]=$six0[$track][2])
>
> There's no need to assign something to itself just to test it. The
> test:
>
If you'd bother to comprehend what is happening, it is not assigning
itself.
$item is the value derived from the loop.
$track is the fixed valued assigned at the time of $_GET.
so if $item and $track are equal then the statement is true and the result
assigns the value to $match and that is what is used to display the proper
item.
If $track=1 and $item=101 and the pairs match in value, then $match gets
the number to use.
|
|
|
Re: solved [message #183793 is a reply to message #183792] |
Tue, 19 November 2013 17:31 |
Christoph Michael Bec
Messages: 207 Registered: June 2013
Karma: 0
|
Senior Member |
|
|
richard wrote:
> On Tue, 19 Nov 2013 13:50:02 +0000, Ben Bacarisse wrote:
>
>> richard <noreply(at)example(dot)com> writes:
>>
>>> <?php
>>>
>>> $track=$_GET['item'];
>>>
>>>
>>> $asong=$six0[$track][0];
>>> $flip=$six0[$track][1];
>>>
>>> $max=count($six0);
>>>
>>> $match=0;
>>>
>>> for ($item=0;$item<=$max;$item++){
>>> if ($flip==$six0[$item]['0'])
>>> {if ($six0[$item][2]=$six0[$track][2])
>>
>> There's no need to assign something to itself just to test it. The
>> test:
>>
>
> If you'd bother to comprehend what is happening, it is not assigning
> itself.
> $item is the value derived from the loop.
> $track is the fixed valued assigned at the time of $_GET.
> so if $item and $track are equal then the statement is true
No. The _expression_ evaluates to true, if $six[0][$track][2] evaluates
to true. *Please*, note the difference between assignment and comparison.
> and the result
> assigns the value to $match and that is what is used to display the proper
> item.
>
> If $track=1 and $item=101 and the pairs match in value, then $match gets
> the number to use.
--
Christoph M. Becker
|
|
|
Re: solved [message #183794 is a reply to message #183792] |
Tue, 19 November 2013 18:15 |
Ben Bacarisse
Messages: 82 Registered: November 2013
Karma: 0
|
Member |
|
|
richard <noreply(at)example(dot)com> writes:
> On Tue, 19 Nov 2013 13:50:02 +0000, Ben Bacarisse wrote:
>
>> richard <noreply(at)example(dot)com> writes:
>>
>>> <?php
>>>
>>> $track=$_GET['item'];
>>>
>>>
>>> $asong=$six0[$track][0];
>>> $flip=$six0[$track][1];
>>>
>>> $max=count($six0);
>>>
>>> $match=0;
>>>
>>> for ($item=0;$item<=$max;$item++){
>>> if ($flip==$six0[$item]['0'])
>>> {if ($six0[$item][2]=$six0[$track][2])
>>
>> There's no need to assign something to itself just to test it. The
>> test:
>
> If you'd bother to comprehend what is happening, it is not assigning
> itself.
Clam down. I miss-read the line, it's not a question of not bothering.
> $item is the value derived from the loop.
> $track is the fixed valued assigned at the time of $_GET.
> so if $item and $track are equal then the statement is true and the result
> assigns the value to $match and that is what is used to display the proper
> item.
No, that's not what happens. The condition is true if and only if
$six0[$track][2] is considered to be true (i.e. not null, false, 0, 0.0,
"", "0", array() or an empty object).
As a side effect, one or more elements of $six0 have their [2] component
set to $six0[$track][2] depending on exactly what data there is in the
array.
Two other points: (1) you access outside the array but running the loop up
to and including $max, and (2) using '0' when you mean 0 is confusing.
It works, but it's not as clear as it should be.
> If $track=1 and $item=101 and the pairs match in value, then $match gets
> the number to use.
--
Ben.
|
|
|
Re: solved [message #183795 is a reply to message #183790] |
Tue, 19 November 2013 18:57 |
Scott Johnson
Messages: 196 Registered: January 2012
Karma: 0
|
Senior Member |
|
|
On 11/19/2013 8:29 AM, Ben Bacarisse wrote:
> Scott Johnson <noonehome(at)chalupasworld(dot)com> writes:
> <snip>
>> Most around here are still trying to get Richard to understand and
>> implement the difference between 'assignment' and 'comparison'.
>
> I try not to post to the poster if you see what I mean. The post
> reminded me of a way to make things clearer, and I fondly hope that it
> might help others who just lurk here, or who see these things in search
> results.
>
> <snip>
>
Agreed. I was just being facetious.
Scotty
|
|
|
Re: solved [message #183796 is a reply to message #183791] |
Tue, 19 November 2013 19:41 |
Mr Oldies
Messages: 241 Registered: October 2013
Karma: 0
|
Senior Member |
|
|
On Tue, 19 Nov 2013 17:43:25 +0100, Arno Welzel wrote:
> Am 19.11.2013 03:45, schrieb richard:
>> <?php
>>
>> $track=$_GET['item'];
>>
>>
>> $asong=$six0[$track][0];
>> $flip=$six0[$track][1];
>>
>> $max=count($six0);
>>
>> $match=0;
>>
>> for ($item=0;$item<=$max;$item++){
>> if ($flip==$six0[$item]['0'])
>> {if ($six0[$item][2]=$six0[$track][2])
>> {$match=$item;}}
>> }
>
> PLEASE format your code properly!
>
> for($item=0; $item <= $max; $item++)
> {
> if($flip == $six0[$item]['0'])
> {
> if($six0[$item][2] = $six0[$track][2])
> {
> $match = $item;
> }
> }
> }
>
> And why this?
>
> if($six0[$item][2] = $six0[$track][2])
>
> Please note: "=" is NOT the same as "=="!
>
> If you want to COMPARE $six0[$item][2] and $six0[$track][2] you MUST write:
>
> if($six0[$item][2] == $six0[$track][2])
The script works if it were on one line or 100 lines.
You've never seen a page where the source code was 10,000 characters long
all on one single line?
|
|
|
Re: solved [message #183797 is a reply to message #183796] |
Tue, 19 November 2013 19:52 |
Beauregard T. Shagnas
Messages: 154 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
richard the sto0pid wrote:
> The script works if it were on one line or 100 lines.
>
> You've never seen a page where the source code was 10,000 characters
> long all on one single line?
Of course we have. However, they were not *written* that way. They were
only compressed into that hopelessly unreadable jumble after, and _only_
after they were fully debugged and completely tested for operation. *Then*
they were compressed. And that's only what you see on the web site; the
developer's source remains well-spaced and indented.
You can't do that. "Debug" is not in your vocabulary.
--
-bts
- = != ==
|
|
|
Re: solved [message #183806 is a reply to message #183796] |
Wed, 20 November 2013 15:02 |
Arno Welzel
Messages: 317 Registered: October 2011
Karma: 0
|
Senior Member |
|
|
Am 19.11.2013 20:41, schrieb richard:
> On Tue, 19 Nov 2013 17:43:25 +0100, Arno Welzel wrote:
>
>> Am 19.11.2013 03:45, schrieb richard:
>>> <?php
>>>
>>> $track=$_GET['item'];
>>>
>>>
>>> $asong=$six0[$track][0];
>>> $flip=$six0[$track][1];
>>>
>>> $max=count($six0);
>>>
>>> $match=0;
>>>
>>> for ($item=0;$item<=$max;$item++){
>>> if ($flip==$six0[$item]['0'])
>>> {if ($six0[$item][2]=$six0[$track][2])
>>> {$match=$item;}}
>>> }
>>
>> PLEASE format your code properly!
>>
>> for($item=0; $item <= $max; $item++)
>> {
>> if($flip == $six0[$item]['0'])
>> {
>> if($six0[$item][2] = $six0[$track][2])
>> {
>> $match = $item;
>> }
>> }
>> }
>>
>> And why this?
>>
>> if($six0[$item][2] = $six0[$track][2])
>>
>> Please note: "=" is NOT the same as "=="!
>>
>> If you want to COMPARE $six0[$item][2] and $six0[$track][2] you MUST write:
>>
>> if($six0[$item][2] == $six0[$track][2])
>
> The script works if it were on one line or 100 lines.
READ what I wrote. I said nothing about the question, if your code works
or not - but I doubt, that you really *know* what the difference is between:
if($six0[$item][2] = $six0[$track][2])
and
if($six0[$item][2] == $six0[$track][2])
Do you? Can you explain, why your code uses the assignement and not the
comparison?
Some how it feels if I already explained this a dozen times and I just
forgot that...
> You've never seen a page where the source code was 10,000 characters long
> all on one single line?
I did. And you don't see any difference in readability above in your
version and my formatted version?
Also see here:
<http://arnowelzel.de/wiki/lib/exe/js.php>
But this does not mean, that such code is *readable* nor that I
recommend to write code this way.
In this special case (<http://arnowelzel.de/wiki/lib/exe/js.php>) it is
a "compressed" JavaScript to save bandwidth and lower the number of HTTP
requests needed. But this is constructed dynamically by js.php which
takes the local JavaScript files and creates a big "compressed" version
of them in one single block.
But for scripts which remains on the server and will never be
transmitted to the client it should be *readable* for *humans*.
--
Arno Welzel
http://arnowelzel.de
http://de-rec-fahrrad.de
|
|
|