Functie maken variabel in query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

P-ter AA

P-ter AA

30/10/2010 18:35:12
Quote Anchor link
Ik zit met het volgende probleem;

Ik heb dit script gemaakt:
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
24
25
26
27
<?php
function connect()
{

    // Variabelen voor verbinging
    $hostname = "localhost";
    $database = "fairmania";
    $username = "root";
    $password = "";
    // Verbinging met database maken
    mysql_connect("$hostname","$username","$password") or die(mysql_error());
    mysql_select_db("$database");
}

function
gebruiker($gebruikersnaam)
{

    // Email opvragen van de persoon met gebruikersnaam = $gebruikersnaam
    $query            =    mysql_query("SELECT email FROM `gebruikers` WHERE `gebruikersnaam` = '". $gebruikersnaam."'");
    $gebruiker        =    mysql_fetch_object($query);
    $email            =    $gebruiker->email;    
    echo $email;
}

// Functie connect() uitvoeren
connect();

// Functie gebruiker() uitvoeren met gebruikersnaam = Pietje
gebruiker('Pietje');
?>


En als ik deze uitvoer krijg ik:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Notice: Trying to get property of non-object in C:\wamp\www\Tests\Functies\index.php on line 26


Hoe kan dit?
De variabel $gebruikersnaam bestaat wel, als ik in de functie 'gebruiker' $gebruikersnaam echo krijg ik Pietje te zien.
Dus daar kan het niet aan liggen.

Ook doet hij het gewoon als ik WHERE `gebruikersnaam` = '". $gebruikersnaam."' vervang door WHERE `gebruikersnaam` = 'Pietje'
Gewijzigd op 30/10/2010 19:04:24 door P-ter AA
 
PHP hulp

PHP hulp

05/11/2024 07:48:48
 
Pim -

Pim -

30/10/2010 18:38:33
Quote Anchor link
Of je hebt een mysql error, of je selecteert 0 rijen.
 

30/10/2010 18:39:34
 
P-ter AA

P-ter AA

30/10/2010 18:41:48
Quote Anchor link
Karl Karl op 30/10/2010 18:39:34:


Wat stom! Heb ik niet aan gedacht. Heel erg bedankt! Maar waarom kan het niet met objecten?
 
Axl Hoogelander

Axl Hoogelander

30/10/2010 18:44:16
Quote Anchor link
Kan wel, Ik gok dat het resultaat zo is: Gebruiker()->username.
Zo iets gok ik.

Toevoeging op 30/10/2010 18:45:26:

Axl Hoogelander op 30/10/2010 18:44:16:
Kan wel, Ik gok dat het resultaat zo is: Gebruiker()->username.
Zo iets gok ik. Bovendien return je ook niks
 

30/10/2010 18:47:13
Quote Anchor link
Maurice vB op 30/10/2010 18:41:48:
Karl Karl op 30/10/2010 18:39:34:


Wat stom! Heb ik niet aan gedacht. Heel erg bedankt! Maar waarom kan het niet met objecten?


Omdat mysql_fetch_object geen objecten fetcher is, geen ORM is, dus alleen maar voor overhead zorgt.

Axl Hoogelander op 30/10/2010 18:44:16:
Kan wel, Ik gok dat het resultaat zo is: Gebruiker()->username.
Zo iets gok ik.

Toevoeging op 30/10/2010 18:45:26:

Axl Hoogelander op 30/10/2010 18:44:16:
Kan wel, Ik gok dat het resultaat zo is: Gebruiker()->username.
Zo iets gok ik. Bovendien return je ook niks


Ja, tuurlijk. Alles kan. Maar het is alsof je naar van Groningen naar Denemarken gaat om in Amsterdam te komen. Kan je net zo goed rechtstreeks doen toch?
Gewijzigd op 30/10/2010 18:48:39 door
 
P-ter AA

P-ter AA

30/10/2010 18:47:50
Quote Anchor link
Axl Hoogelander op 30/10/2010 18:44:16:
Kan wel, Ik gok dat het resultaat zo is: Gebruiker()->username.
Zo iets gok ik.

Toevoeging op 30/10/2010 18:45:26:

Axl Hoogelander op 30/10/2010 18:44:16:
Kan wel, Ik gok dat het resultaat zo is: Gebruiker()->username.
Zo iets gok ik. Bovendien return je ook niks


Oke, maar wat zou ik moeten returnen dan?
 

30/10/2010 18:49:00
Quote Anchor link
Gebruik geen fetch_object.
 
Axl Hoogelander

Axl Hoogelander

30/10/2010 18:49:24
Quote Anchor link
return mysql_fetch_assoc();
 
P-ter AA

P-ter AA

30/10/2010 19:01:23
Quote Anchor link
Oke dankjewel, alleen ik kan deze variabelen niet buiten de functie gebruiken. Hoe kan ik het maken dat dit wel kan? Want de arrays returnen kan niet..
 
Thomas de Roo

Thomas de Roo

30/10/2010 19:07:26
Quote Anchor link
Arrays return kan wel degelijk :)
 
P-ter AA

P-ter AA

30/10/2010 19:08:44
Quote Anchor link
Thomas de Roo op 30/10/2010 19:07:26:
Arrays return kan wel degelijk :)


Ooh? Dan doe ik het verkeerd denk ik..

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
function connect()
{

    // Variabelen voor verbinging
    $hostname = "localhost";
    $database = "fairmania";
    $username = "root";
    $password = "";
    // Verbinging met database maken
    mysql_connect("$hostname","$username","$password") or die(mysql_error());
    mysql_select_db("$database");
}

function
gegevens_gebruiker($id)
{

    // Gegevens opvragen van de persoon met de id = $id
    $query            =    mysql_query("SELECT * FROM `gebruikers` WHERE `id` = '". $id."'");
    $gegevens         =    mysql_fetch_assoc($query);
    
    $id                =    $gegevens['id'];
    $gebruikersnaam    =    $gegevens['gebruikersnaam'];
    $email            =    $gegevens['email'];
    $voornaam        =    $gegevens['voornaam'];
    $achternaam        =    $gegevens['achternaam'];
    $geld            =    $gegevens['geld'];
    $reg_ip            =    $gegevens['reg_ip'];
    $woonplaats        =    $gegevens['woonplaats'];
    $geboortedatum    =    $gegevens['geboortedatum'];
    $website        =    $gegevens['website'];
    $kapitaal        =    $gegevens['kapitaal'];
    $e_weergeven    =    $gegevens['e_weergeven'];
    $a_weergeven    =    $gegevens['a_weergeven'];
    
    // Return gegevens
    return $gegevens;
    
}



connect();
gegevens_gebruiker(1);

// email weergeven
echo $gegevens['email'];

?>
 
Th van

Th van

30/10/2010 19:09:49
Quote Anchor link
Waarom zou je geen arrays kunnen returnen?
Bekijk deze pagina maar eens: http://php.net/manual/en/functions.returning-values.php

----
En deze:
http://www.webcheatsheet.com/PHP/multidimensional_arrays.php
Gewijzigd op 30/10/2010 19:11:19 door Th van
 
Thomas de Roo

Thomas de Roo

30/10/2010 19:10:22
Quote Anchor link
Nu return je een mysql resource ($gegevens).
 
P-ter AA

P-ter AA

30/10/2010 19:11:35
Quote Anchor link
Thomas de Roo op 30/10/2010 19:10:22:
Nu return je een mysql resource ($gegevens).


Inderdaad, maar ik wil die waardes hebben.. Dus ik wil onderaan (zoiets als) dit kunnen doen:

echo $gegevens['email']
Gewijzigd op 30/10/2010 19:11:50 door P-ter AA
 
Pim -

Pim -

30/10/2010 19:18:42
Quote Anchor link
Karl Karl op 30/10/2010 18:49:00:
Gebruik geen fetch_object.


Hoezo niet? Het is nauwelijks langzamer hoor.
 
Jasper hoi

jasper hoi

30/10/2010 19:45:35
Quote Anchor link
dit stuk is compleet nutteloos, je doet er niks mee in de functie en het word ook niet terug gestuurd
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
    $id                =    $gegevens['id'];
    $gebruikersnaam    =    $gegevens['gebruikersnaam'];
    $email            =    $gegevens['email'];
    $voornaam        =    $gegevens['voornaam'];
    $achternaam        =    $gegevens['achternaam'];
    $geld            =    $gegevens['geld'];
    $reg_ip            =    $gegevens['reg_ip'];
    $woonplaats        =    $gegevens['woonplaats'];
    $geboortedatum    =    $gegevens['geboortedatum'];
    $website        =    $gegevens['website'];
    $kapitaal        =    $gegevens['kapitaal'];
    $e_weergeven    =    $gegevens['e_weergeven'];
    $a_weergeven    =    $gegevens['a_weergeven'];
 
Thomas de Roo

Thomas de Roo

30/10/2010 20:02:07
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
18
19
20
21
22
23
24
25
26
<?php
function gegevens_gebruiker($id)
{

    // Gegevens opvragen van de persoon met de id = $id
    $query            =    mysql_query("SELECT * FROM `gebruikers` WHERE `id` = '". $id."'");
    $gegevens         =    mysql_fetch_assoc($query);
    $array = array();
    $array['id']                =    $gegevens['id'];
    $array['naam']   =    $gegevens['gebruikersnaam'];
    $array['email']          =    $gegevens['email'];
    $array['vnaam']        =    $gegevens['voornaam'];
    $array['anaam']        =    $gegevens['achternaam'];
    $array['geld']          =    $gegevens['geld'];
    $array['ip']          =    $gegevens['reg_ip'];
    $array['locatie']        =    $gegevens['woonplaats'];
    $array['geboortedatum']    =    $gegevens['geboortedatum'];
    $array['website']       =    $gegevens['website'];
    $array['kapitaal']       =    $gegevens['kapitaal'];
    $array['weergave_e']    =    $gegevens['e_weergeven'];
    $array['weergave_a']   =    $gegevens['a_weergeven'];
    
    // Return gegevens
    return $array;
    
}

?>
 
Jasper Van Damme

Jasper Van Damme

30/10/2010 20:07:45
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
function connect()
{

    // Variabelen voor verbinging
    $hostname = "localhost";
    $database = "fairmania";
    $username = "root";
    $password = "";
    // Verbinging met database maken
    mysql_connect("$hostname","$username","$password") or die(mysql_error());
    mysql_select_db("$database");
}

function
gegevens_gebruiker($id)
{

    // Gegevens opvragen van de persoon met de id = $id
    $query            =    mysql_query("SELECT * FROM `gebruikers` WHERE `id` = '". $id."'");
    $gegevens         =    mysql_fetch_assoc($query);
    
    // Return gegevens
    return $gegevens;
    
}



connect();
$gegevens = gegevens_gebruiker(1);

// email weergeven
echo $gegevens['email'];

?>
 
Thomas de Roo

Thomas de Roo

30/10/2010 20:08:59
Quote Anchor link
Ow ja, zo kan het ook :P
 
P-ter AA

P-ter AA

31/10/2010 13:18:00
Quote Anchor link
Heel erg bedankt voor jullie hulp! Wat stom dat ik er niet aan gedacht heb.. Ik ga me er nog eens in verdiepen.
 

Pagina: 1 2 volgende »



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.