Resultset naar Array
Ik voer een SQL query uit en wil graag de resultset hiervan in een gewone array plaatsen. Nu heb ik het op dit moment zo staan:
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
function executeQuery()
{
$queryString = "select namen from tbl_namen";
$con = $this->maakVerbinding();
$resulti = mysql_query($queryString);
$result = array();
while($row = mysql_fetch_array($resulti))
{
$temp =$row['namen'];
$result[] = $temp;
}
$this->sluitVerbinding($con);
return $result;
}
?>
function executeQuery()
{
$queryString = "select namen from tbl_namen";
$con = $this->maakVerbinding();
$resulti = mysql_query($queryString);
$result = array();
while($row = mysql_fetch_array($resulti))
{
$temp =$row['namen'];
$result[] = $temp;
}
$this->sluitVerbinding($con);
return $result;
}
?>
En op zich werkt dit wel maar wat ik eigenlijk wil is dat je de kolomnaam niet weet dus:
$temp =$row['namen']; zou eigenlijk zoiets moeten worden:
$temp =$row[];
Dus hoe krijg ik het voor elkaar een array uit een resultset te maken zonder dat ik dat de kolomnaam invoer? De tabel heeft meerdere kolommen maar ik wil alleen maar de namen in dit geval maar kom er vandaag nie uit. alvast bedankt.
Misschien de vraag nog korter samengevat:
Hoe zet ik een sql resultset om naar een array?
Maar het is standaard een array, dus dit is ook voldoende:
$row = mysql_fetch_array($result1, MYSQL_NUM);
$result[] = $row;
Gewijzigd op 02/08/2010 14:22:43 door P Lekensteyn
Dit kan je in de while loop zetten, als het goed is werkt dit ook.
Gewijzigd op 02/08/2010 14:27:30 door Joost B
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$result = array();
$i = 0;
while($row = mysql_fetch_array($resulti, MYSQL_NUM))
{
$result[] = $row[$i];
}
$this->sluitVerbinding($con);
return $result;
?>
$result = array();
$i = 0;
while($row = mysql_fetch_array($resulti, MYSQL_NUM))
{
$result[] = $row[$i];
}
$this->sluitVerbinding($con);
return $result;
?>
Karl Karl op 02/08/2010 14:52:14:
Waarom niet direct mysql_fetch_row?
Ik heb nu geprobeerd om verder te gaan en meerdere kolommen uit tabellen te halen en in een 2dimensionale array te zetten. Heb hier ook getracht om jouw functie voor te gebruiken maar ik krijg hele rare output als ik de array doorloop. Hier is de code waarvan ik denk dat het zou moeten werken:
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 doeQuery(){
$queryString = "select naam, adres from tbl_data";
$con = $this->maakVerbinding();
$resulti = mysql_query($queryString);
$result = array();
$i = 0;
while($row = mysql_fetch_row($resulti))
{
$result[$i][] = $row;
$i++;
}
$this->sluitVerbinding($con);
return $result;
}
?>
public function doeQuery(){
$queryString = "select naam, adres from tbl_data";
$con = $this->maakVerbinding();
$resulti = mysql_query($queryString);
$result = array();
$i = 0;
while($row = mysql_fetch_row($resulti))
{
$result[$i][] = $row;
$i++;
}
$this->sluitVerbinding($con);
return $result;
}
?>
Dit zou toch moeten werken of doe ik iets verkeerd? Het enige wat ik nu te zien krijg als ik de loop doorloop met:
Code (php)
krijg alleen dit als resultaat:
Array-
Array-
Array-
Voor zover ik kan zien zou dit toch moeten werken? of doe ik net iets verkeerd? (dat moet wel, anders zou ie wel werken :P).
edit
---------
als ik trouwens met print_r de array uitdraai krijg ik dit:
Array ( [0] => Array ( [0] => Array ( [0] => kees [1] => eenstraat ) )
Het is nu dus eigenlijk een... 3 dimensionale array of zoiets geworden, maar heb eerlijk gezegd gee idee waar dat door komt..
Toevoeging op 02/08/2010 16:41:14:
na zelf doorgeklooid te hebben is het opgelost :P
$result[$i][] = $row; is geworden $result[$i] = $row;
werkt nu, bedankt :)
Gewijzigd op 02/08/2010 16:30:30 door task b