Functie maken variabel in query
Ik heb dit script gemaakt:
Code (php)
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
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');
?>
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)
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
Of je hebt een mysql error, of je selecteert 0 rijen.
Karl Karl op 30/10/2010 18:39:34:
Gebruik mysql_fetch_assoc.
Wat stom! Heb ik niet aan gedacht. Heel erg bedankt! Maar waarom kan het niet met objecten?
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
Zo iets gok ik. Bovendien return je ook niks
Maurice vB op 30/10/2010 18:41:48:
Wat stom! Heb ik niet aan gedacht. Heel erg bedankt! Maar waarom kan het niet met objecten?
Karl Karl op 30/10/2010 18:39:34:
Gebruik mysql_fetch_assoc.
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:
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
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?
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:
Oke, maar wat zou ik moeten returnen dan?
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
Zo iets gok ik. Bovendien return je ook niks
Oke, maar wat zou ik moeten returnen dan?
Gebruik geen fetch_object.
return mysql_fetch_assoc();
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..
Arrays return kan wel degelijk :)
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)
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
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'];
?>
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'];
?>
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
Nu return je een mysql resource ($gegevens).
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
Karl Karl op 30/10/2010 18:49:00:
Gebruik geen fetch_object.
Hoezo niet? Het is nauwelijks langzamer hoor.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
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'];
$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'];
Code (php)
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
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;
}
?>
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;
}
?>
Code (php)
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
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'];
?>
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'];
?>
Ow ja, zo kan het ook :P
Heel erg bedankt voor jullie hulp! Wat stom dat ik er niet aan gedacht heb.. Ik ga me er nog eens in verdiepen.