Jump to content

PHP MySQL Arrays and OOP


remarsh

Recommended Posts

I've searched high and low for pointed but im driving myself bonkers in getting this working!

 

Building a website and trying to keep everything efficient and modular however and have problems getting my head around OOP and Arrays with MySQL.

 

Class ABC {

 

  static $taken = array();

 

  function setArray() {

 

  //connect and query etc..

  // extract all the mysql and store it in an array of taken urls

 

  while($row = mysql_fetch_array($results)) {

$taken = $row['the_url'];

  }

  }

 

  function getArray() {

  //return the array so that a btree can search through them.

  return $taken;

  }

 

}

 

$hello = new ABC;

 

$hello->setArray();

 

$hello->getArray();

 

echo $hello;

 

 

however i only every seem to get the first result and doesnt seem to stay as an array

 

i tried seaching this website but keep getting 'daemon error' so any pointers to the right direction would be greatly appreciated!!! thankyou

 

Link to comment
Share on other sites

$hello->setArray(); and $hello->getArray(); are variables in and amongst themselves. 

You can almost think of classes as arrays, only using "->function" as a 'parking place' instead of [0], [1], etc.

Try echo $hello->getArray(); (Assuming that this will return data you want to output).

Link to comment
Share on other sites

thanks for replying!

 

I tried your tip and again it still only outputs the data that was last stored in the array. its a real head scratcher!

 

tried FOR loops and it simply outputs the same data over and over again.

 

ideas?

Link to comment
Share on other sites

When you write:

$taken = $row['the_url'];

 

You're not adding that value to the array.  Instead, you're overwriting the entire thing.

 

The simplest way to add a value to an array is to simply put brackets at the end of the array variable's name:

$taken[] = $row['the_url'];

 

You can also explicitly push the value onto the array:

array_push($taken, $row['the_url']);

Link to comment
Share on other sites

Also, you need to specify $this when referencing a class variable:

 

Class ABC {

   static $taken = array();

   function setArray() {

   // connect and query etc..
   // extract all the mysql and store it in an array of taken urls

       while($row = mysql_fetch_array($results)) {
           $this->taken[] = $row['the_url'];
       }
   }

   function getArray() {
   // return the array so that a btree can search through them.
       return $this->taken;
   }

}

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.