|
Posted by dawnerd on 05/02/07 22:22
On May 2, 3:11 pm, dawnerd <dawn...@gmail.com> wrote:
> I am having troubles with my script. It is supposed to generate a
> "map" from a serialized array stored in a database. However, it is not
> generating any html. I know the data is being retrieved from the
> database and being unserialized properly as I've tested that. It seems
> to not go through the loop.
>
> /**
> * function drawMap( $startx, $starty, $p1, $p2, $p3 )
> * Generates html for output.
> */
> function drawMap( $startx, $starty, $p1, $p2, $p3 )
> {
> $sql = "SELECT * FROM `cp_citymap` WHERE `p1` = '$p1' AND `p2` =
> '$p2' AND `p3` = '$p3'";
> $query = $this->database->query( $sql );
> $num = $this->database->count_rows( $query );
>
> if( $num != 1 )
> {
> $this->error = "Could not find City Map data.";
> return false;
> }
>
> $row = $this->database->get_row( $query );
>
> $mapArray = unserialize( $row['blocks'] );
>
> $x = $startx;
> $y = $starty;
> $maxx = $x - 11;
> $maxy = $y + 10;
>
> while( $x < $maxx )
> {
> $this->outputHTML .= "<span class=\"cityMapBlock\"><a href=\"#\"
> title=\"" . $mapArray[$x][$y]['type'] . "\">" . $mapArray[$x][$y]
> ['type'] . "</a></span>";
>
> if( $mapArray[$x][$y] == $maxy )
> {
> $this->outputHTML .= "</br>";
> $y = $maxy - 10;
> $x--;
> }
> }
>
> return true;
> }
>
> Any help at all would be appreciated greatly, and I'll give you a
> million internets.
I just realized that I pasted the wrong while function. It is still
the same, only I meant for it to be:
while( $x > $maxx )
Since $maxx will be a number less that $x. It starts reading the data
from the top left corner of the "graph" However, I now get a 500
error. The error_log says: Allowed memory size of 8388608 bytes
exhausted (tried to allocate 10 bytes)
I've never encountered this in my PHP adventures.
[Back to original message]
|