[PHP] Associatieve array vullen dmv foreach.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • theFluke
  • Registratie: Juli 2002
  • Laatst online: 03-12-2023
Ik ben wat aan het stoeien met php en heb de volgende functie (die deel uit maakt van een klasse) gemaakt :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function getData($query) {
    
        $dataResult=mysql_query($query) or die (mysql_error()); 
        
        $this->records = array(); 
        while($dataRow = mysql_fetch_assoc($dataResult)) { 
        
            foreach($dataRow as $fieldName => $fieldValue) {
                echo $i ." ";
                $this->records[$fieldName] = $fieldValue;
            }
            
        }
        print_r($this->records);
        return array($this->records); 
    }

Nu zou deze functie meerdere records uit mijn database in een de array $records. Hij vult de array ook zoals verwacht, maar alleen met één record. Dit terwijl er zich meerdere records bevinden in de geselecteerde tabel.
Wat doe ik fout? Zou ik anders moeten itereren?

Work on time?......Yeah, I admire the concept.


Acties:
  • 0 Henk 'm!

  • bramseltje
  • Registratie: September 2001
  • Laatst online: 17-09 14:01
Ik heb verder geen kaas gegeten van php, maar de manier waarop je de array vult
[code]
$this->records[$fieldname] = $fieldvalue
[/code
is dat niet alleen het eerste item van de array?

moet je niet iets doen als
code:
1
$this->records->add($fieldname, $fieldvalue)
?

nogmaals... heb verder geen ervaring van met php, dus je mag best lachen :P

[ Voor 4% gewijzigd door bramseltje op 19-01-2004 21:53 . Reden: uiteraard is het 'ervaring met' en niet 'van' ]


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Bramseltje schreef op 19 januari 2004 @ 21:51:
Ik heb verder geen kaas gegeten van php, maar de manier waarop je de array vult
[code]
$this->records[$fieldname] = $fieldvalue
[/code
is dat niet alleen het eerste item van de array?

moet je niet iets doen als
code:
1
$this->records->add($fieldname, $fieldvalue)

?

nogmaals... heb verder geen ervaring van php, dus je mag best lachen :P
* LuCarD lacht....

Maar je hebt wel gelijk!

probeer het eens als volgt.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function getData($query) {
    
        $dataResult=mysql_query($query) or die (mysql_error()); 
        
        $this->records = array(); 
        while($dataRow = mysql_fetch_assoc($dataResult)) { 
        
                 $this->records[] = $dataRow;
                  // dit maakt elke keer een nwe item aan in de array records.
                       
        }
        print_r($this->records);
        return array($this->records); 
    }

[ Voor 8% gewijzigd door LuCarD op 19-01-2004 21:56 . Reden: layout was verneukt... ]

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Zoals ik het zie blijf je nu telkens de waarden uit 1 row "op dezelfde plek" in de array stoppen. Wat je dus zal moeten doen is een 2 dimensionale array maken waarbij je de "row" in de array telkens ophoogt.

zoiets dus:
$this->records[][$fieldName] = $fieldValue;

[ Voor 19% gewijzigd door Annie op 19-01-2004 22:02 . Reden: spuit elf ]

Today's subliminal thought is:


Acties:
  • 0 Henk 'm!

  • theFluke
  • Registratie: Juli 2002
  • Laatst online: 03-12-2023
Annie schreef op 19 januari 2004 @ 22:01:
Zoals ik het zie blijf je nu telkens de waarden uit 1 row "op dezelfde plek" in de array stoppen. Wat je dus zal moeten doen is een 2 dimensionale array maken waarbij je de "row" in de array telkens ophoogt.

zoiets dus:
$this->records[][$fieldName] = $fieldValue;
Dat werkt! mijn array wordt nu geheel gevuld. Hoe kan nou eigenlijk zo'n multidimensional array weer het beste uitlezen?

Work on time?......Yeah, I admire the concept.


Acties:
  • 0 Henk 'm!

  • steenz
  • Registratie: Oktober 2000
  • Laatst online: 21-09-2024
PHP:
1
2
3
for ($i = 0; $i < count($arr); $i++) {
 echo $arr[$i][$fieldName];
}


Of zoiets. het gaat om het idee; $fieldName moet je natuurlijk zelf invullen net als $arr.
Pagina: 1