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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Максимальное количество таблиц - сколько?

Сообщения:  [1-9] 

 
 автор: Хулиган   (25.06.2006 в 15:53)   письмо автору
 
   для: cheops   (25.06.2006 в 14:54)
 

Немного изменил запрос:

          $sql_status="SHOW TABLE STATUS LIKE '001'";
          $status = mysql_query ($sql_status) or die ("status query failed");
          $comment=mysql_fetch_array($status);
          print ($comment['Comment']);


Спасибо за помощь

   
 
 автор: cheops   (25.06.2006 в 14:54)   письмо автору
 
   для: Хулиган   (25.06.2006 в 14:44)
 

>Возвращаясь к параметру таблицы, в котором можно было бы хранить какой-нибудь
>кириллический текст: у таблицы при создании можно записать параметр COMMENT. А можно
>его программно извлечь в переменную?
>Если можно, то как?
Да, это возможно, при помощи запроса
SHOW FULL TABLES LIKE 'имя_таблицы'

Поле с именем comment (могу врать - нужно проветить) будет содержать комментарий к таблице.

   
 
 автор: Хулиган   (25.06.2006 в 14:44)   письмо автору
 
   для: cheops   (25.06.2006 в 10:26)
 

Боюсь, пользователя, незнакомого с БД, такие вещи, как первичные и вторичные ключи, связаные таблицы и т.д. будут ставить в тупик. Я хочу сделать модуль, который будет создавать панель навигации (менюшку), и чтобы этот модуль работал при любом количестве отделов, категорий, и который не надо было бы править при изменениях в базе и структуре этой базы. Чтобы моего вмешательства не требовалось. Может с отдельными таблицами - неоптимальный вариант, но это проще. А модуль выглядит примерно так:


<?
    $link 
mysql_connect("localhost""root""") or die ("Could not connect");
    
mysql_select_db ("BASE") or die ("Could not select database");
    
$tbls=mysql_list_tables("BASE");
    while (
$tb=mysql_fetch_array($tbls)) {
          
//тут разгребаются отделы
          
$prompt"ShowSubmenu('menu_".$tb[0]."', 'toplight".$tb[0]."')" ;
          
$sql_otdel="SELECT * FROM '".$tb[0]."' WHERE 1 LIMIT 0 , 1 ";
          
$otdels mysql_query ($sql_otdel) or die ("department query failed");
          
$cell_otdel mysql_fetch_array($otdels);?>
          <TR>
              <TD class=leftnav id=toplight<? print htmlspecialchars($tb[0]); ?>
                  style="color: #515151; background-color: #00fff"
                  onclick="<? print htmlspecialchars($prompt); ?>">
                  <? print htmlspecialchars($cell_otdel[0]); ?>
              </TD>
          </TR>
          <TR>
              <TD>
                  <DIV id=menu_<? print htmlspecialchars($tb[0]); ?> style="DISPLAY: none">
<?                $sql_cat="SELECT DISTINCT CAT_ID, CAT_NAME FROM '".$tb[0]."'";           ?>
<?                $cats
=mysql_query ($sql_cat) or die ("category query failed");           ?>
<?                
while ($cat_cell=mysql_fetch_array($cats)) {                             ?>
                        //тут разгребаются категории отдела
<?                      $subprompt=$tb[0]."_".$cat_cell[0];                                ?>
                        <DIV class=submenu id=<? print htmlspecialchars($subprompt); ?>><A
                        href="http://www.mysite.ru/index.php?dat=
                        <? print htmlspecialchars($subprompt); ?>"
                        target="_blank">
                  <? print htmlspecialchars($cat_cell[1]); ?></A></DIV>
<?                }                                                                        ?>
              </TD>
          </TR>
<? }                                                                                       ?>
<? mysql_close
($link); ?>

Менюшка работает, передаёт в страницу, открываемую по клику на ссылке, номер отдела и номер категории в пределах этого отдела.
Возвращаясь к параметру таблицы, в котором можно было бы хранить какой-нибудь кириллический текст: у таблицы при создании можно записать параметр COMMENT. А можно его программно извлечь в переменную?
Если можно, то как?

   
 
 автор: cheops   (25.06.2006 в 10:26)   письмо автору
 
   для: Хулиган   (25.06.2006 в 02:12)
 

Так а вы поместите имена отделов в отдельную таблицу, откуда извлекаются первичные ключи 001, 002 и т.п. А все таблицы для разных отделов объединить в одну, но добавив поле для вторичного ключа отдела. Обычно такие задачи в SQL решают при помощи всего двух таблиц.

   
 
 автор: Хулиган   (25.06.2006 в 02:12)   письмо автору
 
   для: cheops   (24.06.2006 в 21:54)
 

Понятно, тогда ещё вопрос по таблицам:
Я хотел сделать, чтобы имя таблицы было именем отдела. Раз кириллица чревата непонятками, то решил сделать (имя таблицы = id отдела), т.е. '001', '002', и т.д.
А само имя отдела вписывать в каждую запись как одно из полей. Но мне имя отдела нужно всего один раз при обращении к таблице, и не хотелось бы дублировать его в каждой записи.
Поэтому такой вопрос: есть ли у таблицы какой-нибудь параметр, в котором можно было бы хранить это имя в виде кириллицы? Т.е., по аналогии с winapi, что-то вроде параметра GWL_USERDATA, имеющегося у каждого окна в винде.

   
 
 автор: cheops   (24.06.2006 в 21:54)   письмо автору
 
   для: Хулиган   (24.06.2006 в 19:51)
 

Есть - не известно как отнесётся UNIX-подобная операционная система к таким названиями, как правило, плохо. Лучше ориентируетесь на английские названия, если имеется такая возможность...

   
 
 автор: Хулиган   (24.06.2006 в 19:51)   письмо автору
 
   для: Loki   (24.06.2006 в 19:18)
 

Ясно, и ещё один вопрос о таблицах: есть ли какие-нибудь подводные камни, если имя таблицы записано кириллицей? Пока на локальной машине никаких проблем не встретилось, но может есть нюансы с использованием кириллицы в имени таблицы, на которые нужно иметь ввиду?

   
 
 автор: Loki   (24.06.2006 в 19:18)   письмо автору
 
   для: Хулиган   (24.06.2006 в 18:30)
 

нет

   
 
 автор: Хулиган   (24.06.2006 в 18:30)   письмо автору
 
 

Собственно и весь вопрос: есть ограничение на кол-во таблиц в базе?

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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