Resultset naar Array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Task b

task b

02/08/2010 14:14:40
Quote Anchor link
Hey mensen heb een korte vraag maar ik heb vandaag me dag niet in PHP...om de 1 of andere reden krijg ik dingen niet gedaan.. In ieder geval hier mijn probleem.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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;
    }

?>


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?
 
PHP hulp

PHP hulp

25/04/2024 09:03:00
 
P Lekensteyn

P Lekensteyn

02/08/2010 14:21:51
Quote Anchor link
Gebruik $row[0] voor de 1e rij, $row[1] voor de 2e, enz.
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
 
Joost B

Joost B

02/08/2010 14:26:51
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
array_merge($result, $row);

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
 
Task b

task b

02/08/2010 14:47:21
Quote Anchor link
Bedankt mensen heb het met de volgende code werkend gekregen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>
 

02/08/2010 14:52:14
Quote Anchor link
Waarom niet direct mysql_fetch_row?
 
Task b

task b

02/08/2010 16:16:06
Quote Anchor link
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)
PHP script in nieuw venster Selecteer het PHP script
1
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;
}

?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$eenArray
= doeQuery();
foreach($eenArray as $waarde)
{


 foreach($waarde as $item)
 {

  echo $item."-";
 }

 echo "<br>";
}

?>


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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.