[PHP] OOP return array binnen functie/methode

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Peunage
  • Registratie: Februari 2009
  • Laatst online: 07-07 13:58
Ik ben een functie aan het schrijven die de details van een gebruiker ophaalt. Het ophalen uit de database werkt, dat heb ik al getest. Maar het probleem is het oppakken van die informatie in een andere pagina.
Ik laat alleen de code zien die hier van belang is.


Deze code staat in user.class.php
PHP:
1
2
3
4
5
6
7
8
9
10
public function getUserDetails($email){
        $gud    =   $this->db->prepare("select stagename from ****** where email=?");
        if($gud->execute(array($email))) {
            if($gud->rowCount()==1){
                $row    =   $gud->fetch();
                return $row;
            }
            else return false;
        } else return false;
    }



Ik instantieer deze klasse op een pagina die profile.php heet
PHP:
1
2
3
4
5
        $gud    =   new User();
        if($gud->getUserDetails($email)){
        print_r($row);  
        }
        else echo "Could not get user details";


print_r doet helemaal niks. Ook als ik bijvoorbeeld
PHP:
1
echo $row['stagename'];
doe gebeurt er helemaal niks. Geen foutmelding, helemaal niks. Als ik dit binnen de klasse echo dan komt hij wel op de profielpagina te zien, dus de query werkt gewoon en geeft 1 resultaat, zoals het hoort.

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 17:04

Matis

Rubber Rocket

PHP:
1
2
$gud    =    new User(); 
$gud    =    $this->db->prepare("select stagename from ****** where email=?");

Waarom de eerste assignment?

Kijk ook even naar http://php.net/manual/en/function.error-reporting.php voor error reporting en http://www.php.net/manual...on.php#ini.display-errors voor het weergeven er van.

[ Voor 45% gewijzigd door Matis op 03-03-2013 18:11 ]

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • Peunage
  • Registratie: Februari 2009
  • Laatst online: 07-07 13:58
Matis schreef op zondag 03 maart 2013 @ 18:10:
PHP:
1
2
$gud    =    new User(); 
$gud    =    $this->db->prepare("select stagename from ****** where email=?");

Waarom de eerste assignment?
Dat was mij helemaal niet opgevallen. Op de verkeerde plaats gezet dus. Hij is nu weg.

Acties:
  • 0 Henk 'm!

Anoniem: 28333

Peunage schreef op zondag 03 maart 2013 @ 17:53:
PHP:
1
2
3
4
5
        $gud    =   new User();
        if($gud->getUserDetails($email)){
        print_r($row);  
        }
        else echo "Could not get user details";
Je getUserDetails returned de row, maar je set hem niet, vervolgens print_r je de niet bestaande variabele $row. Dus
PHP:
1
2
3
if(false !== ($row = $gud->getUserDetails($email))) {
print_r($row);
}

De !== ipv != omdat php anders ook op 0, null en "0" matcht.

[ Voor 22% gewijzigd door Anoniem: 28333 op 03-03-2013 20:32 ]


Acties:
  • 0 Henk 'm!

  • Tarilo
  • Registratie: December 2007
  • Laatst online: 22:01
Los van de opmerking hierboven vind ik het erg vreemd dat je de $gud variabele eerst vult met een nieuw User object en deze vervolgens overschrijft met een PDOStatement object(vermoed ik).

Acties:
  • 0 Henk 'm!

  • Peunage
  • Registratie: Februari 2009
  • Laatst online: 07-07 13:58
Anoniem: 28333 schreef op zondag 03 maart 2013 @ 20:31:
[...]


Je getUserDetails returned de row, maar je set hem niet, vervolgens print_r je de niet bestaande variabele $row. Dus
PHP:
1
2
3
if(false !== ($row = $gud->getUserDetails($email))) {
print_r($row);
}

De !== ipv != omdat php anders ook op 0, null en "0" matcht.
Bedankt, dit heeft gewerkt!
Tarilo schreef op zondag 03 maart 2013 @ 21:42:
Los van de opmerking hierboven vind ik het erg vreemd dat je de $gud variabele eerst vult met een nieuw User object en deze vervolgens overschrijft met een PDOStatement object(vermoed ik).
Klopt, dat had daar niet moeten staan eigenlijk. Maar ik had het al weggehaald uit mijn code.

[ Voor 31% gewijzigd door Peunage op 04-03-2013 00:14 ]

Pagina: 1