Function in een function alternatief

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jerry php

Jerry php

28/12/2013 17:52:54
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    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

Toevoeging op 29/12/2013 13:08:43:

Heeft iemand een suggestie hoe ik die kan aanpakken?
 
PHP hulp

PHP hulp

26/11/2020 21:34:18
 
Jerry php

Jerry php

29/12/2013 19:46:03
Quote Anchor link
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.
 
Bram Hammer

bram Hammer

29/12/2013 20:10:09
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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.
Gewijzigd op 29/12/2013 20:44:40 door bram Hammer
 
Erwin H

Erwin H

29/12/2013 22:24:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?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....
Gewijzigd op 29/12/2013 22:31:07 door Erwin H
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.