Ik ben bezig met een script dat een row met een bepaalde naam uit een tabel selecteerd. Als deze niet bestaat moet een default row nemen.
Nu doe ik dat zo:
Is het niet mogenlijk om dit in één statement te doen? iets in de zin van:
SELECT * FROM `menu` ORDER BY (`name` = '$var'), `order` ASC LIMIT 0,1
in de manual staat wel [ORDER BY {col_name | expr | position} ... ] maar ik weet niet precies wat ze daar mee bedoelen.
edit: mijn excuses voor de semi vergeten topic naam
Nu doe ik dat zo:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| // Get current menu from request variables if ($s = mysql_escape_string(array_shift($vars))); { $result = mysql_query("SELECT `id`, `name`, `title` FROM `menu` WHERE `name` = '{$s}'", $this->db); $this->menu = mysql_fetch_assoc($result); mysql_free_result($result); } if (empty($this->menu)) { $result = mysql_query("SELECT `id`, `name`, `title` FROM `menu` ORDER BY `order` ASC LIMIT 0,1", $this->db); $this->menu = mysql_fetch_assoc($result); mysql_free_result($result); } |
Is het niet mogenlijk om dit in één statement te doen? iets in de zin van:
SELECT * FROM `menu` ORDER BY (`name` = '$var'), `order` ASC LIMIT 0,1
in de manual staat wel [ORDER BY {col_name | expr | position} ... ] maar ik weet niet precies wat ze daar mee bedoelen.
edit: mijn excuses voor de semi vergeten topic naam
[ Voor 8% gewijzigd door DiLDoG op 19-07-2005 16:36 ]