Netjes in 1 rij vanuit meerdere tabellen (MySQLi)
Jan Erik Van woerden
11/08/2010 17:07:56Hallo,
Ik zit nog even met een probleem.
Ik heb 2 tabellen.
Nu wil ik graag dat ik via een scriptje er voor zorgen dat alle Params en users bij elkaar gevoegd worden tot 1 rij.
Ik heb nu dit:
Weten jullie of dit misschien makkelijker kan?
Ik zit nog even met een probleem.
Ik heb 2 tabellen.
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
CREATE TABLE IF NOT EXISTS `userParams` (
`id` int(15) NOT NULL auto_increment,
`user_id` int(13) NOT NULL,
`name` varchar(255) NOT NULL,
`value` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
INSERT INTO `userParams` (`id`, `user_id`, `name`, `value`) VALUES
(1, 1, 'date', '09-10-1995'),
(2, 1, 'last', 'this'),
(3, 2, 'date', '13-10-1994'),
(4, 2, 'last', 'those');
CREATE TABLE IF NOT EXISTS `users` (
`id` int(13) NOT NULL auto_increment,
`voornaam` varchar(255) NOT NULL,
`achternaam` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `users` (`id`, `voornaam`, `achternaam`) VALUES
(1, 'Jan Erik', 'van Woerden'),
(2, 'Testie', 'Brits');
`id` int(15) NOT NULL auto_increment,
`user_id` int(13) NOT NULL,
`name` varchar(255) NOT NULL,
`value` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
INSERT INTO `userParams` (`id`, `user_id`, `name`, `value`) VALUES
(1, 1, 'date', '09-10-1995'),
(2, 1, 'last', 'this'),
(3, 2, 'date', '13-10-1994'),
(4, 2, 'last', 'those');
CREATE TABLE IF NOT EXISTS `users` (
`id` int(13) NOT NULL auto_increment,
`voornaam` varchar(255) NOT NULL,
`achternaam` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `users` (`id`, `voornaam`, `achternaam`) VALUES
(1, 'Jan Erik', 'van Woerden'),
(2, 'Testie', 'Brits');
Nu wil ik graag dat ik via een scriptje er voor zorgen dat alle Params en users bij elkaar gevoegd worden tot 1 rij.
Ik heb nu dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$query = $db->query("SELECT * FROM users AS t1, userParams AS t2 WHERE t1.id = t2.user_id AND t1.id = (SELECT user_id FROM userParams WHERE name = 'last' AND value = 'this')") or die($db->error);
while($row = $query->fetch_object())
{
$return->{$row->user_id}->id = $row->user_id;
$return->{$row->user_id}->voornaam = $row->voornaam;
$return->{$row->user_id}->achternaam = $row->achternaam;
$return->{$row->user_id}->{$row->name} = $row->value;
}
print_r($return);
?>
$query = $db->query("SELECT * FROM users AS t1, userParams AS t2 WHERE t1.id = t2.user_id AND t1.id = (SELECT user_id FROM userParams WHERE name = 'last' AND value = 'this')") or die($db->error);
while($row = $query->fetch_object())
{
$return->{$row->user_id}->id = $row->user_id;
$return->{$row->user_id}->voornaam = $row->voornaam;
$return->{$row->user_id}->achternaam = $row->achternaam;
$return->{$row->user_id}->{$row->name} = $row->value;
}
print_r($return);
?>
Weten jullie of dit misschien makkelijker kan?
Gewijzigd op 11/08/2010 17:10:55 door Jan Erik Van woerden
Er zijn nog geen reacties op dit bericht.