abstract database class
ik ben bezig met een abstract database class om zo verschillede drivers te kunnen gebruiken.
Momenteel ben ik nog bij de mysql_driver.
Ik heb een functie getResults() en getResult() en die gaan als volgt:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public function getResult() {
if(mysql_num_rows($this->query)>0) {
$this->result = mysql_fetch_array($this->query);
} else {
return false;
}
return $this->result;
}
public function getResults() {
$rows = mysql_num_rows($this->query);
if($rows>0) {
$data = array();
for($i=0; $i<$rows;$i++) {
$data[] = mysql_fetch_array($this->query,$i);
}
return $data;
} else {
return false;
}
}
if(mysql_num_rows($this->query)>0) {
$this->result = mysql_fetch_array($this->query);
} else {
return false;
}
return $this->result;
}
public function getResults() {
$rows = mysql_num_rows($this->query);
if($rows>0) {
$data = array();
for($i=0; $i<$rows;$i++) {
$data[] = mysql_fetch_array($this->query,$i);
}
return $data;
} else {
return false;
}
}
En ik voer het volgende uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
$query = $db->getQuery(array('id','title'),'pages');
if(true===$query) {
$result = $db->getResults();
var_dump($result);
if(true===$result) {
foreach($result as $row) {
echo 'ID: ' . $row['id'] . '<br>Title: ' . $row['title'] . '<br>';
}
}
} else {
echo $query; //(Foutieve query)
}
if(true===$query) {
$result = $db->getResults();
var_dump($result);
if(true===$result) {
foreach($result as $row) {
echo 'ID: ' . $row['id'] . '<br>Title: ' . $row['title'] . '<br>';
}
}
} else {
echo $query; //(Foutieve query)
}
Nou werkt het wel, alleen mijn var_dump geeft dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
array(4) {
[0]=> array(4) {
[0]=> string(1) "1"
["id"]=> string(1) "1"
[1]=> string(10) "PHP-Coding"
["title"]=> string(10) "PHP-Coding"
}
[1]=> array(2) {
["id"]=> string(1) "2"
["title"]=> string(8) "Over Mij"
}
[2]=> array(2) {
[0]=> string(1) "3"
[1]=> string(17) "Beheerders pagina"
}
[3]=> array(4) {
[0]=> string(1) "5"
["id"]=> string(1) "5"
[1]=> string(4) "todo"
["title"]=> string(4) "todo"
}
}
[0]=> array(4) {
[0]=> string(1) "1"
["id"]=> string(1) "1"
[1]=> string(10) "PHP-Coding"
["title"]=> string(10) "PHP-Coding"
}
[1]=> array(2) {
["id"]=> string(1) "2"
["title"]=> string(8) "Over Mij"
}
[2]=> array(2) {
[0]=> string(1) "3"
[1]=> string(17) "Beheerders pagina"
}
[3]=> array(4) {
[0]=> string(1) "5"
["id"]=> string(1) "5"
[1]=> string(4) "todo"
["title"]=> string(4) "todo"
}
}
Zoals je ziet worden mijn waardes foutief opgeslagen...
De ene keer wel als [id] => en [title] =>
En de andere keer met nummers zoals in de 3e result of juist weer met allebij, nummers EN [id],[title]
Zoals ik zie is alleen de 2e waarde op de juiste manier opgeslagen. Heeft iemand enig idee hoe dit komt?
Toevoeging op 21/04/2013 18:45:04:
Laat maar, ik heb het al gefixt door de resultaten apart op te slaan in de array mvg array_keus()
Gewijzigd op 21/04/2013 11:46:08 door Dennis WhoCares
Er zijn nog geen reacties op dit bericht.