txt = $txt; $this->subs = array(); } }; class Sub { public $nam; public function __construct($nam) { $this->nam = $nam; } }; function load() { $data = array(); $con = new mysqli('localhost', 'root', '', 'Test'); $stmt = $con->prepare('SELECT main.txt,subs.nam FROM main LEFT JOIN subs ON main.id=subs.main_id ORDER BY main.txt;'); $stmt->execute(); $stmt->store_result(); $stmt->bind_result($maintxt, $subnam); $ix = 0; $lastmaintxt = '>>>>BOF<<<<'; while($stmt->fetch()) { if($maintxt != $lastmaintxt) { $ix++; $data[$ix] = new Main($maintxt); $lastmaintxt = $maintxt; } if($subnam != null) $data[$ix]->subs[] = new Sub($subnam); } $stmt->close(); $con->close(); return $data; }; function display_as_lists($data) { echo "\r\n"; }; function display_as_table($data) { echo "\r\n"; echo "\r\n"; foreach($data as $main) { echo "\r\n"; $n = count($main->subs); echo "\r\n"; for($ix = 0; $ix < $n; $ix++) { if($ix > 0) echo "\r\n\r\n"; $sub = $main->subs[$ix]; echo "\r\n"; } echo "\r\n"; } echo "
TextName
$main->txt
$sub->nam
\r\n"; } $data = load(); display_as_lists($data); display_as_table($data); ?>