Vin-Diesel
Новичок
sql запрос
У меня есть скрипт:
Посылаем запрос с условием `id_root` = 1, если такого нету(т.е. возвращается результат 0 функцией mysql_num_rows) мы посылаем запрос уже с условием `id_root` IS NULL мне хотелось бы узнать: можно эти два запроса обьединить в один запрос, и как?
Структура и данные таблицы:
--
-- Структура таблицы `menu`
--
CREATE TABLE `menu` (
`id` int(11) default NULL auto_increment,
`id_root` int(11) default NULL,
`title` varchar(20) collate utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Дамп данных таблицы `menu`
--
INSERT INTO `menu` VALUES (1, NULL, 'value №1');
INSERT INTO `menu` VALUES (2, NULL, 'value №2');
INSERT INTO `menu` VALUES (3, 2, 'value №3');
У меня есть скрипт:
PHP:
$connect = mysql_connect('localhost', 'root', '4352');
$connect = mysql_select_db('localhost', $connect);
mysql_query('SET NAMES cp1251');
if(!empty($_GET['id']))
{
$sql = "SELECT * FROM `menu` WHERE `id_root` = '".$_GET['id']."' LIMIT 100";
$result = mysql_query($sql);
if(mysql_num_rows($result) <= 0)
{
$sql = "SELECT * FROM `menu` WHERE `id_root` IS NULL LIMIT 100";
$message = 'Пунктов меню с индефикатором `'.$_GET['id'].'`, не обнаруженно, будет загружен корень';
}
$result = mysql_query($sql);
}
else
{
$sql = "SELECT * FROM `menu` WHERE `id_root` IS NULL LIMIT 100";
$result = mysql_query($sql);
}
if(mysql_num_rows($result) <= 0)
{
$rows[0]['id'] = 1;
$rows[0]['title'] = 'No items';
$error_log = true;
}
else
while($row = mysql_fetch_assoc($result))
{
$rows[] = $row;
}
mysql_close();
Структура и данные таблицы:
--
-- Структура таблицы `menu`
--
CREATE TABLE `menu` (
`id` int(11) default NULL auto_increment,
`id_root` int(11) default NULL,
`title` varchar(20) collate utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Дамп данных таблицы `menu`
--
INSERT INTO `menu` VALUES (1, NULL, 'value №1');
INSERT INTO `menu` VALUES (2, NULL, 'value №2');
INSERT INTO `menu` VALUES (3, 2, 'value №3');