Вопрос - Ответ по MySQL

Печать RSS
2986

Д

Малиновые штаны
0
к примеру этот код
$result = mysql_query ("SELECT * FROM ".$table." ORDER BY ` test _1` DESC LIMIT 0 , 35 ");
понял его только 50% прошу обьяснить

2000 лет д.н.э.
0
если не используешь в своем коде слова зарезервированные как служебные термины mysql, то ´ не обязательны
О

Землянин
0
".$table." можно без кавычек — лишняя интерпретация строк
М

Пацак
0
Проблема с подсчетом файлов в разделе, в котором есть еще подразделы, и в которых могут быть еще подразделы и т.д.
Все хранится в базе данных. Есть две таблицы: категории загрузок `loads_cats` и сами загрузки `loads`.
Структура таблицы `loads_cats`
  `id` хранится ид раздела
  `id_cat` ид раздела в котором он находится, если на главной, то ноль
  `name` имя раздела

Структура таблицы `loads`
  `id` хранится ид файла
  `id_cat` ид раздела
  `name` имя файла

Следующим кодом я хочу вывести все разделы которые находяться на главной загрузок(т.е. ид раздела '0')
и вывести рядом количество файлов в разделах

$result = mysql_query("SELECT * FROM `loads_cats` WHERE `id_cat` = '0'");

while($row = mysql_fetch_assoc($result)){
$files = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `loads` WHERE `id_cat` = ".$row['id'].""), 0);
echo '<a href="loads/?act=view&amp;id='.$row['id'].'">'.$row['name'].'</a> ('.$files.')<br/>';
}
Но, этим запросом можно узнать только количество файлов в данных разделах, а не в включенных в них подразделов.
Надеюсь, что кто-то мне поможет smile
О

Землянин
0
SELECT 
	loads_cats.id
	loads_cats.id_cat
	loads_cats.name
	loads.name AS name_file
	loads.id AS id_file	
FROM 
	loads_cats   
LEFT JOIN
	loads ON loads.id_cat =  loads_cats.id
WHERE 
	`id_cat` = '0'
М

Пацак
0
335. Aligan, я так понял запрос нужно в начало, т.е. в $result в данном случае, но выскачили ошибки с mysql_fetch_assoc из-за запроса выше, через mysql_error пробовал исправлять ошибки, но ничего не вышло как правильно это записать
$result = mysql_query("SELECT  
    loads_cats.id,
    loads_cats.id_cat,
    loads_cats.name,
    loads.name AS name_file,
    loads.id AS id_file 
FROM  
    `loads_cats`    
LEFT JOIN 
    `loads` ON loads.id_cat =  loads_cats.id
WHERE  
    `id_cat` = '0'");
О

Землянин
0
Запрос поправил немного. Вот.
SELECT  
    loads_cats.id, 
    loads_cats.id_cat, 
    loads_cats.name, 
    loads.name AS name_file, 
    loads.id AS id_file     
FROM  
    loads_cats    
LEFT JOIN 
    loads ON loads.id_cat =  loads_cats.id 
WHERE  
    loads_cats.`id_cat` = 1

p.s. уже не раз говорил, скажу еще — целые значение не обрамляй в апострофы, это не к чему. это лишнее.
Изменил: Олег (25.08.2010 / 18:11)
М

Пацак
0
337. Aligan, терь ошибок нету, но теперь ничего нет smile не выводит вообще разделы =)
О

Землянин
0
У меня выводит. Прикрепи дам базы вместе с данными
М

Пацак
0
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск