Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Снова про категории
 
 автор: Kien   (24.11.2006 в 19:09)   письмо автору
 
 

Есть 2 таблицы:

1-я:

books

id | name | category_id |
1 blabla 1
2 blabla 1
3 blabla 2
4 blabla 3

и тд.

2-я таблица: categories

id | name|
1 blabla
2 blabla
3 blabla

Как бы каталог книг, каждая относится к какой-то категории (всегда одной). В категории может быть несколько книг.
category_id в books одинаково id в category, то есть является ключом.
Я вывожу описание книги в данной категории, а как вывести название категории с ссылкой на нее? Т.е. чтобы на странице было:
____________________________________
Название категории >> название книги |
--------------------------------------------------------------|
Описание книги |
___________________________________ |

Получается вывести только номер категории, а не название

   
 
 автор: Trianon   (24.11.2006 в 19:41)   письмо автору
 
   для: Kien   (24.11.2006 в 19:09)
 


SELECT books.*, categories.name AS category_name 
FROM books 
  LEFT JOIN categories ON category_id = categories.id
ORDER BY books.name

   
 
 автор: Kien   (24.11.2006 в 20:31)   письмо автору
 
   для: Trianon   (24.11.2006 в 19:41)
 

че-то никак, ничего не выводит

Вот функция вывода, может в ней ошибка:

$ath = mysql_query("SELECT books.*, categories.name AS category_name 
FROM books 
  LEFT JOIN categories ON category_id = categories.id
ORDER BY books.name ");
if($ath)
{
  echo '<div align=left style=margin-left:10px; margin-top:40px;>';
    $category = mysql_fetch_array($ath);
    $url = 'show_cat.php?id='.($book['category_id']);
    $title = $category[name]; 
    echo '<br>';
    do_html_url2($url, $title); 
  
  echo "</div>";
}
else
{
  echo "<p><b>Error: ".mysql_error()."</b><p>";
  exit();
}

   
 
 автор: Trianon   (24.11.2006 в 20:44)   письмо автору
 
   для: Kien   (24.11.2006 в 20:31)
 

<?
$ath 
mysql_query("SELECT books.*, categories.name AS category_name  
FROM books  
  LEFT JOIN categories ON category_id = categories.id 
ORDER BY books.name "
); 
if(
$ath

   while(
$row =  mysql_fetch_assoc($ath))
   {
        foreach(
$row as $fld => $val
        echo 
'$row'."['$fld'] = '$val'<br>\r\n";
   } 
   echo 
"<br>\r\n";
}
 
else 

  echo 
"<p><b>Error: ".mysql_error()."</b><p>"
  exit(); 
}

дальше, надеюсь, сами...

   
 
 автор: Webmaster-X   (22.02.2007 в 00:09)   письмо автору
 
   для: Trianon   (24.11.2006 в 20:44)
 

Подкажите пожалуйста !!!

Хочу вывести категории и все подкатегории в тег <select><option>........</option></select>
следующим образом:

категория 0
категория 0
--категория 1
--категория 1
----категория 2
------категория 3
------категория 3
--------категория 4
----категория 2
--категория 1
категория 0

но чёто не получается никак


#  Серуктура таблицы `mylinks_cat`
#

CREATE TABLE mylinks_cat (
  cid mediumint(8) unsigned NOT NULL auto_increment,
  pid mediumint(8) unsigned NOT NULL default '0',
  title varchar(60) NOT NULL default '',
  imgurl varchar(255) NOT NULL default '',
  description text,
  PRIMARY KEY  (cid),
  KEY idx (pid)
) TYPE=MyISAM;



Функция которой я вывожу основные котегории, подскажите что нужно дописать чтоб можно было подкрепить под них подкатегории ...


<?
function MySelBox($table)
{
    global 
$db,$lang;

        echo 
'<select class="select" name="subcat">';

        
$sql "SELECT cid, pid, title FROM ".$table." WHERE pid=0";

        
$result mysql_query($sql,$db);

        
$count mysql_num_rows($result);

        echo
"<option value=\"0\">".$lang['lang117']."</option>";

        while (list(
$cid$pid$title) = mysql_fetch_row($result))
        {
                echo 
'<option value="'.$cid.'">'.$title.'</option>';
        }

        echo 
'</select>';

}
?>

   
 
 автор: Trianon   (22.02.2007 в 10:03)   письмо автору
 
   для: Webmaster-X   (22.02.2007 в 00:09)
 

Вероятно, Вас заинтересует тема http://softtime.ru/forum/read.php?id_forum=3&id_theme=18535&page=1

   
 
 автор: Webmaster-X   (24.02.2007 в 14:27)   письмо автору
 
   для: Trianon   (22.02.2007 в 10:03)
 


подскажите в моём случае что будут означать эти переменные
$tree...
$name = "название";
$pid = "прикрепление к категории";
$lev=0

<? 
 
function showtree(&$tree$name$pid$lev=0

  
$s str_repeat(" . "$lev+1); 
  echo 
"$s$name :<br> "
  foreach(
$tree[$pid] as $id => $name) if($id !== 0
      
showtree($tree$name$id$lev+1

?>

   
 
 автор: Webmaster-X   (24.02.2007 в 15:06)   письмо автору
 
   для: Webmaster-X   (24.02.2007 в 14:27)
 

Сделал так но результат неправильный


тоесть
основная
-основная
-основная
-подкатегория
-основная

<?
$lang
['lang117'] = "основная";

function 
showtree(&$tree$name$pid$lev=0)
{


  
$s str_repeat("-"$lev+1);

  echo 
'<option value="'.$lev.'">';

  echo 
"$s$name";

  echo 
'</option>';

  foreach(
$tree[$pid] as $id => $name) if($id !== 0)
  {

  
showtree($tree$name$id$lev+1);

  }

}

function 
MySelBox($table)
{
    global 
$db,$lang;

        echo 
'<select class="select" name="subcat">';

        
$sql "SELECT cid, pid, title FROM ".$table."";

        
$result mysql_query($sql,$db);

        
$count mysql_num_rows($result);

        echo
"<option value=\"0\">".$lang['lang117']."</option>";

        while (list(
$cid$pid$title) = mysql_fetch_row($result))
        {
               
// echo '<option value="'.$cid.'">'.$title.'</option>';

                
showtree ($cid$title$pid); 
        }

        echo 
'</select>';

}

MySelBox("mylinks_cat");
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования