Beste mensen,

voor mezelf ben ik een function aan het maken die een query uitvoert, en daarna een opgevraagde value opvraagt. Ik wilde dat op de volgende manier doen:

    public function runSelect($select, $from, $where=1){
        $result = mysqli_query($this->link, "SELECT ".$select." FROM ".$from." WHERE ".$where);

        if($result){
            return true;
        }else{
            return false;
        }

        public function getValue($value){
            $count = mysqli_num_rows($result) - 1;
            if($count > 0){
                $value = array();
                for($i=0;$i<=$count;$i++){
                    $data = $result->fetch_assoc();
                    $value[] = $data["'".$value."'"];
                }
                return $value;
            }else{
                return false;
            }
        }
    }


wat dus de bedoeling is dat er in de 2e functie de query gebruikt wordt van de eerste functie. Ik dacht er zo makkelijk vanaf te komen, enkel is dat dus niet het geval. Kan iemand me opweg helpen?

mvg
jeremy

[size=xsmall]Toevoeging op 29/12/2013 13:08:43:[/size]

Heeft iemand een suggestie hoe ik die kan aanpakken?
Weet iemand hoe ik dit kan oplossen? Ik sta ook open voor oplossingen zoals in 1 functie oid. ik zoek gewoon iemand die me nu kan op weg helpen.

public function runSelect($select, $from, $where=1){
    $result = mysqli_query($this->link, "SELECT ".$select." FROM ".$from." WHERE ".$where);

    if($result)
        return $result;
    else
        return false;
}

public function getValue($result, $value){
    $data = mysqli_fetch_assoc($result);
    return $data[$value];
}

$query = runSelect('*', 'data_table');
$id = getValue($query, 'id');
$name = getValue($query, 'name');


Dit zou moeten werken.
Je gaat je dan alleen afvragen waarom je die hele functie gebruikt. Het if statement voor de return is namelijk compleet overbodig, aangezien dat precies doet wat mysqli_query zelf al teruggeeft. Dat if statement kan je dus weglaten. Dan krijg je dit:

<?php
public function runSelect($select, $from, $where=1){
    return mysqli_query($this->link, "SELECT ".$select." FROM ".$from." WHERE ".$where);
}
?>

En dan is het gewoon een functie in een functie stoppen. Het levert weinig tot geen toegevoegde waarde op.

Verder gaat die getValue functie niet doen wat je wil. Elke keer dat je fetcht haal je namelijk een record op. Doe je dat eerst voor de id en dan voor de name, dan haal je dus twee keer een record op en de twee waardes horen dus niet bij elkaar.

Ik zou naar een andere oplossing gaan zoeken....

Reageren