hallo,
ik ben bezig met me php(oop) verbeteren
dus heb ik dit gemaakt

 function  select($table, $colom){
       // zet alles klaar
        $this->result = $this->link->query("SELECT artist, track, link  FROM ".$table."");
         //zet het in een while
         while($row = $this->result->fetch_assoc()){
            //geeft het terug aan de aanvrager
        return $row[$colom];
        }
    }

en dit in me index

<div id="hits1"><?php echo $db->select("song", "artist");?>
</div>

alleen nu heb ik een probleem hij geeft maar 1 record terug
maar in de db staan er 4

wie weet hoe ik dit kan oplossen ?

MVG kenny
Je geeft in de while een return. Daarmee verlaat je echter de methode en dus de while-lus. Dan komt er logischerwijs maar één record uit.
dus ik al een wihile in me index maken
Dat kan, en je kunt daarvoor de methode een array met meerdere records laten teruggeven. Dat is efficiënter dan in een while meerdere keren die select() aanroepen.
dus nu een array in me select aan maken en die aanroepen in me index
oke

Toevoeging op 13/12/2014 14:52:53:

dus zo

 function  select($table, $colom){
        $array = array();
       // zet alles klaar
        $this->result = $this->link->query("SELECT artist, track, link  FROM ".$table."");
         //zet het in een while
         while($row = $this->result->fetch_assoc()){
            $array = $row[$colom];
        return $array;
        }
    }
bijna, zet de retuen buiten de while.
De functie zal nu nog steeds geen array teruggeven, maar een simpele string. Dat komt, doordat in regel 7 de opgehaalde waarde niet wordt toegevoegd aan $array, maar $array domweg overschrijft. Dat is te verhelpen met:

$array[] = $row[$colom];

En inderdaad regel 8 en 9 even omwisselen.
met welke kmoet ik het dan laten zien?
echo array
printf ook array
vardump array(4) { [0]=> string(5) "tetst" [1]=> string(4) "test" [2]=> string(2) "fa" [3]=> string(5) "tesdt" }
print_r Array ( [0] => tetst [1] => test [2] => fa [3] => tesdt )
met print_r($array) kan je je array laten zien, voor test/debug-doeleinden.

Reageren