code: public function fetchData()
    {
      // start row nr with zero, fetchData is called by rewind and followed by next
      // when de first row is fetched by next, the row nr is increased by one
      $this->current_row_nr = 0;
      // perform the query
      parent::fetchData();
      
      // reset recordcount
      $this->recordcount = null;
      
      // get first row, its expected
      $this->next();
      // because this is the first time, we consider the recordset unused
      // the current object is the first row, just what we expect when calling rewind, 
      // so rewind doesn't have to call fetchData again when its in this state
      // our previous next call marked the recordSet as used, but it doesn't know
      // its called for the first time, we do, so we mark the recordSet as unused now
      $this->recordSet_used = false;
    }
docs: fetch all data from the database
  
  after this method has been called, this object can be
  iterated as an array of Web2All_Table_IListableObject's