Avatar billede diensdal Nybegynder
25. januar 2004 - 10:06 Der er 2 kommentarer

Retrun af et array?

Jeg ved godt at et lignende spørgsmål har været stillet før her dog kan jeg bare ikke få det til at virke hos mig.

Jeg har en database hvor jeg gerne vil hente nogle dataer ud og lægge disse i et array. Det er så vidt også lykkes for mig dog nu ville jeg gerne have lavet den kode som gjord dette om til en funktion der retunere dette arrayet og kopiere dette over i et nyt array.
Dog ved at prøve dette kan jeg bare ikke få noget output på skærmen.
Måske er der nogle er jer der kan sige mig hvordan det burde gøres.
Her er koden jeg har brugt så vidt:

--------------

// $sql er en sql select sætning som jeg har afprøvet i php og som virker.
// $ $rom_num er bare en integer der skal henvise til den rette row.

function getContent($sql, $row_num) {
    $result = mysql_query($sql, $db);
    $temp = array();
    $counter = 0;
    while ($row = mysql_fetch_row($result)) {
        $temp[$counter] = $row[$row_num];
        $counter++;
    }
    return ($temp);
}

$title = array();
$title = getContent($sql, 1);
echo $title[0];

--------------------

Som sagt har det fungeret uden at være en funktion.
Og ja min php kendskab er meget begrænset ;)

Håber i kan hjælpe mig :)
Avatar billede diensdal Nybegynder
25. januar 2004 - 10:13 #1
Lige meget har lige opdaget at jeg missede $db som parameter i funktionen. Nu virker det ;)
Avatar billede Slettet bruger
25. januar 2004 - 10:23 #2
Derudover bruger du variablen $row_num som et kolonnenummer, ikke et rækkenummer. Og while-løkken kan godt optimeres lidt:

    while ($row = mysql_fetch_row($result)) {
        $temp[] = $row[$row_num];
    }

Du har slet ikke brug for den counter.

Endelig vil denne funktion være meget ineffektiv, hvis du skal bruge mere end en enkelt kolonne, da du så skal lave et databaseopslag for hver kolonne. En lidt bedre løsning kunne være:

function getContent($sql) {
    $result = mysql_query($sql);
    $temp = array();
    while ($row = mysql_fetch_assoc($result)) {
        $temp[] = $row;
    }
    return $temp;
}

$liste=getContent($sql);
echo $liste[0]['title'];
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