Avatar billede gedekid Nybegynder
17. marts 2011 - 11:29 Der er 2 kommentarer og
1 løsning

Problem med noget SQL og foreach

Hej eksperter,

jeg sidder med noget der driller mig lidt.
Jeg skal have trukket nogle forskellige felter ud fra noget forskellige tabeller og det gør jeg med følgende:

class Calculations extends SQLHandling {
   
    function TunListe($rtn) {
       
        $fields = array("tun", "binder", "nakkekrampe", "vent_25");
           
        foreach($fields as $key => $value) {
           
            SQLHandling::SQLquery(
                        "SELECT stentyper.".$value." AS t_".$value.",
                        priser.pris_e AS pe_".$value.", priser.pris_w AS pw_".$value.",
                        tunliste.beskrivelse AS be_".$value."
                        FROM stentyper, priser, tunliste
                        WHERE stentyper.navn = '". $rtn ."'
                        AND priser.tun = stentyper.{$value}
                        AND tunliste.tun = stentyper.{$value}");
            }
           
        return;
    }
   
    function PrintList() {
               
            SQLHandling::SQLprintResult();
    }
}

og

function SQLquery($query) {
       
        $this->q = mysql_query($query);
       
        if(!$this->q) {
            die(mysql_error());
            return false;
        } else {
            return $this->q;           
        }
    }

function SQLprintResult() {
           
        while($row = mysql_fetch_array($this->q)) {
           
            $rowArray = array();
                       
            foreach($row as $key => $value) {
                $rowArray[$key] = $value;
            }
           
            $this->row = $rowArray;
        }
       
        return $this->row;
    }


Jeg gør et eller andet galt et sted for jeg får kun data fra den sidste nøgle i $fields, i det her tilfælde vent_25.

Hvis jeg i SQLquery laver et dump på $query så hiver data fra de fire nøgler, men i sidste ende får jeg altså kun den sidste.

Er der en der kan hjælpe ?
Avatar billede tjens Nybegynder
17. marts 2011 - 14:33 #1
Du har ingen kald af "print" inden i den foreach, der kører flere SQLer efter hinanden.

Der er kun den sidste SQL til rådighed efter foreach, da du ikke på nogen måde gemmer/udskriver hvert enkelt resultat.
Avatar billede gedekid Nybegynder
21. marts 2011 - 11:24 #2
Arh.. Jeg takker! :)

Smider du et svar ?
Avatar billede tjens Nybegynder
21. marts 2011 - 11:38 #3
OK
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