return database values in foreach
Ik ben vrij nieuw in OOP php en probeer data van de database terug op het veld te zetten.
Het probleem is nu dat ik altijd maar 1 waarde terug op het scherm krijg als ik return gebruik.
Bij een echo laat hij ze allemaal zien, nu is het probleem dat ik geen echo kan gebruiken omdat ik een applicatie op heb gezet die html in functie's zet zodat ik eerst objecten kan vullen en ze dan allemaal netjes op het scherm kan zetten.
Hier is de code die ik nu gebruik:
De klasse "Seminair":
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
public function read() {
$query = "SELECT id, title, description, datetime FROM seminar";
$result = $this->getDb()->query($query);
$values = array();
while(($row = $result->fetchObject()) !== false) {
//foreach($row as $values) {
$values['title'] = $row->title;
return $values;
//$this->setDescription($row->description);
//$this->setDatetime($row->datetime);
//}
}
}
?>
public function read() {
$query = "SELECT id, title, description, datetime FROM seminar";
$result = $this->getDb()->query($query);
$values = array();
while(($row = $result->fetchObject()) !== false) {
//foreach($row as $values) {
$values['title'] = $row->title;
return $values;
//$this->setDescription($row->description);
//$this->setDatetime($row->datetime);
//}
}
}
?>
de klasse SeminairView:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
public function render() {
$this->content = '
Op deze pagina staan alle Seminairs die te volgen zijn.
';
//$this->content .= $this->text1->read();
foreach($this->sem_obj->read() as $value) {
$this->content .= $value;
}
$this->content .= $this->sem_obj->read();
$this->content .= $this->sem_obj->getTitle();
$this->content .= $this->sem_obj->getDescription();
$this->content .= $this->sem_obj->getDatetime();
//$this->content .= $this->text1->showSeminairs();
return $this->content;
}
?>
public function render() {
$this->content = '
Op deze pagina staan alle Seminairs die te volgen zijn.
';
//$this->content .= $this->text1->read();
foreach($this->sem_obj->read() as $value) {
$this->content .= $value;
}
$this->content .= $this->sem_obj->read();
$this->content .= $this->sem_obj->getTitle();
$this->content .= $this->sem_obj->getDescription();
$this->content .= $this->sem_obj->getDatetime();
//$this->content .= $this->text1->showSeminairs();
return $this->content;
}
?>
Ik hoop dat iemand een idee heeft wat ik niet goed doe, of hoe ik het beter kan doen, alvast bedankt.
Gewijzigd op 18/03/2013 11:29:24 door Nick Audenaerde
je hebt een (onvoorwaardelijke) return statement in je while lus. wat is de letterlijke betekenis van het woord return?
Terugkeren
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
public function read() {
$query = "SELECT id, title, description, datetime FROM seminar";
$result = $this->getDb()->query($query);
$values = array();
while(($row = $result->fetchObject()) !== false) {
//foreach($row as $values) {
// hier nieuw record in het array maken
$values[]['title'] = $row->title;
//$this->setDescription($row->description);
//$this->setDatetime($row->datetime);
//}
}
// hier pas de return van het hele array
return $values;
}
?>
public function read() {
$query = "SELECT id, title, description, datetime FROM seminar";
$result = $this->getDb()->query($query);
$values = array();
while(($row = $result->fetchObject()) !== false) {
//foreach($row as $values) {
// hier nieuw record in het array maken
$values[]['title'] = $row->title;
//$this->setDescription($row->description);
//$this->setDatetime($row->datetime);
//}
}
// hier pas de return van het hele array
return $values;
}
?>
Toevoeging op 19/03/2013 10:02:58:
Heb dit geprobeerd maar dat werkt niet :(
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
public function read() {
$query = "SELECT id, title, description, datetime FROM seminar";
$result = $this->getDb()->query($query);
$values = array();
while(($row = $result->fetchObject()) !== false) {
//foreach($row as $values) {
// hier nieuw record in het array maken
$values[] = $row;
//$this->setDescription($row->description);
//$this->setDatetime($row->datetime);
//}
}
// hier pas de return van het hele array
return $values;
}
?>
public function read() {
$query = "SELECT id, title, description, datetime FROM seminar";
$result = $this->getDb()->query($query);
$values = array();
while(($row = $result->fetchObject()) !== false) {
//foreach($row as $values) {
// hier nieuw record in het array maken
$values[] = $row;
//$this->setDescription($row->description);
//$this->setDatetime($row->datetime);
//}
}
// hier pas de return van het hele array
return $values;
}
?>
Code (php)
1
2
3
4
5
2
3
4
5
<?php
foreach($this->sem_obj->read() as $value) {
$this->content .= $value->title;
}
?>
foreach($this->sem_obj->read() as $value) {
$this->content .= $value->title;
}
?>
Gewijzigd op 19/03/2013 10:53:44 door - SanThe -
Warning: Illegal string offset 'title' in /Applications/MAMP/htdocs/helix/puberbrein/views/SeminarView.php on line 26
Zie mijn edit.
Toevoeging op 19/03/2013 10:49:15:
Heb het werkend gekregen!!!!
Dit stukje code moest veranderd worden.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
foreach($this->sem_obj->read() as $value) {
$this->content .= $value['title'];
}
?>
foreach($this->sem_obj->read() as $value) {
$this->content .= $value['title'];
}
?>
Naar dit stukje:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
foreach($this->sem_obj->read() as $value) {
$this->content .= $value->title;
}
?>
foreach($this->sem_obj->read() as $value) {
$this->content .= $value->title;
}
?>
Super bedankt SanThe zonder jou was ik er nooit opgekomen !!
Zal mijn post even aanpassen.
Succes verder.