particular attribute value, as in whether it should be greater than or equal to, less than or
equal to or exactly equal to the current search criterion.
What is missing from the current XML design is metadata, in effect data types, that the
program could use to distinguish between 2100 meaning 2100, 9pm or the part
number of some computer accessory. For example:
Dell
Inspiron
2100
or
Bob`s Plumbers
01 2345678
0600 1800
1000 1600
would be a much more sensible way of encoding the data. Time simply ran out before
a parser for this XML structure could be fully implemented. Tweaking the startElement(),
grep() and test_line() functions in parse2.inc would be straightforward; all of the
intellectual effort required to conceptualise the algorithm first time around is second
nature at this stage. However, rather than running the risk of ending up with half finished
code, I have opted to submit the older, functional version albeit less truly functional
than the version just described.
The last significant piece of code in multishop.php is included from lm.inc, which prints
the panel on the left of the page and generates the simple search form. The form
generating code is in a further nested include file called genmultiform.inc. As in any of
the smart form includes such as genericproductform.inc which are deployed on
queries.php, the first piece of PHP code generates a series of hidden form inputs, one for
each shop name, in this case from the array $shops[]. Next, a $fields array is declared and
populated by scanning through all of the possible attribute names in $shopsarray[].
44