Avatar billede Svane55 Nybegynder
05. november 2009 - 15:04 Der er 2 kommentarer og
1 løsning

Array problem

Denne function ligger poster fra en db i et array.

function DbQuerry()
{
  $dbconnect = new dbconnect();
  $dbconnect->mysqlconnect();
       
  $select = $this->querystring[$this->querrystringnumber];
       
  $res = mysql_query($select);
  $ar = array();
  while($r = mysql_fetch_array($res))
  {   
    $ar[] = array($r[0],$r[1],$r[2],$r[3],$r[4],$r[5]);
  }

return $ar;
       
}

(querystring er et array indeholdende en masse querrystrings)

Dette fungerer fint, men jeg vil gerne kunne lave mit inderste array dynamisk i størrelsen alt afhængigt af hvor mange values der kommer fra db.

Jeg har prøvet med følgende

while($r = mysql_fetch_array($res))
{
   
    foreach($r as $key=>$value)
    {
      $ar[] = $value;
    }

    $ar2[] = $ar;
    $ar = array();
}

return $ar2;

Det virker, men hver værdi ligges nu i arryet 2 gange.

Hvad gør jeg forkert?
Avatar billede Slettet bruger
05. november 2009 - 15:30 #1
mysql_fetch_array returnerer et array med associerede og numeriske keys.

Du skal i stedet bruge mysql_fetch_assoc, der kun returnerer associeret eller mysql_fetch_row, der kun returnerer numerisk.

Alternativt kan du alligevel bruge mysql_fetch_array med 3. parameter (result_type) = MYSQL_ASSOC eller MYSQL_NUM.

Her er eksempler med de 3 forskellige fetch typer:
mysql_fetch_array:
$r[0] = "ole"
$r[1] = "bole"
$r['firstName'] = "ole"
$r['lastName'] = "bole"

mysql_fetch_assoc:
$r['firstName'] = "ole"
$r['lastName'] = "bole"

mysql_fetch_row:
$r[0] = "ole"
$r[1] = "bole"
Avatar billede Svane55 Nybegynder
05. november 2009 - 15:43 #2
Det var jo løsningen :)
Tak!

Smid et svar
Avatar billede Slettet bruger
05. november 2009 - 15:55 #3
Svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester