Ik heb op het moment de volgende query:
Deze tabelletjes zien er als volgt uit:
Het nadeel is dat op deze manier de results ongesorteert zijn terwijl ze eigenlijk op alfabetische volgorde moeten staan.
Ik begrijp dat dit met een Union en/of Join zou moeten kunnen zodat ik maar 1 query hoef uit te voeren, maar ik kom er niet uit.
Ik heb de MySQL manual al doorgekeken maar vind daar zo snel geen duidelijke voorbeelden, ook wat random MySQL tuts helpen me nog niet echt verder, kan iemand me in de juiste richting schoppen?
Alvast bedankt
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| $query = "SELECT * FROM enabledlist WHERE site='" . addslashes($_GET["site"]) . "' AND type='0'"; $result = mysql_query($query); while($listitem = mysql_fetch_array($result)){ $query2 = "SELECT * FROM packages WHERE ID='" . $listitem["package"] . "' AND Type='" . $systemtype . "';"; $result2 = mysql_query($query2); while($package = mysql_fetch_array($result2)){ if($package["Default"] == 1){ $output.=" <input type=\"checkbox\" name=\"package" . $package["ID"] . "\" CHECKED>" . $package["Name"] . "<br>\n"; }else{ $output.=" <input type=\"checkbox\" name=\"package" . $package["ID"] . "\">" . $package["Name"] . "<br>\n"; } } } |
Deze tabelletjes zien er als volgt uit:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| mysql> describe packages; +---------------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------------+---------------------+------+-----+---------+----------------+ | ID | bigint(20) unsigned | NO | PRI | NULL | auto_increment | | Name | tinytext | NO | | | | | Path | tinytext | NO | | | | | Default | char(1) | NO | | 0 | | | Type | char(1) | NO | | 2 | | | restartafter | char(1) | NO | | | | | softwareversion | varchar(20) | NO | | | | | lastsoftwareversion | varchar(20) | NO | | | | | internalname | varchar(45) | NO | | | | | versionno | int(10) unsigned | NO | | | | | layer | varchar(45) | NO | | | | +---------------------+---------------------+------+-----+---------+----------------+ 11 rows in set (0.08 sec) |
SQL:
1
2
3
4
5
6
7
8
9
10
| mysql> describe enabledlist; +---------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+---------------------+------+-----+---------+----------------+ | ID | bigint(20) unsigned | NO | PRI | NULL | auto_increment | | package | bigint(20) | NO | | | | | site | bigint(20) | NO | | | | | type | char(1) | NO | | 0 | | +---------+---------------------+------+-----+---------+----------------+ 4 rows in set (0.08 sec) |
Het nadeel is dat op deze manier de results ongesorteert zijn terwijl ze eigenlijk op alfabetische volgorde moeten staan.
Ik begrijp dat dit met een Union en/of Join zou moeten kunnen zodat ik maar 1 query hoef uit te voeren, maar ik kom er niet uit.
SQL:
1
2
| mysql> (select package as flpkg from enabledlist where site = 1 and type = 0) union (select * from packages where ID = flpkg); ERROR 1054 (42S22): Unknown column 'flpkg' in 'where clause' |
Ik heb de MySQL manual al doorgekeken maar vind daar zo snel geen duidelijke voorbeelden, ook wat random MySQL tuts helpen me nog niet echt verder, kan iemand me in de juiste richting schoppen?
Alvast bedankt