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

Форум MySQL

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

 

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

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

тема: Статьи 2 ! ( продолжение тему! )
 
 автор: Panker   (01.09.2006 в 22:51)   письмо автору
 
 

http://softtime.ru/forum/read.php?id_forum=3&id_theme=23733&page=1
Продолжение темы

Последний поста

    
Блин простите, говорю запутался ужасНО!
Давайте плиз ещё разок, как на уроке алгебры мля ))))

Таблица рубрик!
АйДи
Рубрика
Дата

Таблица статей!
АйДи
Название
Текст
Дата

Что теперь, умоляю разьесните ещё раз вот на примере русских таблиц

   
 
 автор: куч1963   (02.09.2006 в 06:57)   письмо автору
 
   для: Panker   (01.09.2006 в 22:51)
 

В твоем примере нет внешнего ключа в таблице статей.
Вот твой пример
Таблица рубрик!
АйДи- (Индекс PK 1 таблицы)
Рубрика
Дата

Таблица статей!
АйДи (Индекс PK 2 таблицы)
ID_rub ((Индекс FK =PK 1 таблицы, и осуществляющий связку таблиц)
Название
Текст
Дата

   
 
 автор: Panker   (02.09.2006 в 08:32)   письмо автору
 
   для: куч1963   (02.09.2006 в 06:57)
 


Индекс PK 1 таблицы
(Индекс PK 2 таблицы

вот это что такое, и как осуествляется связка второй день не пойму
...
ну имли пример какойнить плиз, я имею ввиду состояние базы даных (((
я соверешнно не понимаю и запутался

   
 
 автор: куч1963   (02.09.2006 в 10:03)   письмо автору
 
   для: Panker   (02.09.2006 в 08:32)
 

Вот выдержка из мануала по ПХП с этого сайта

Первичный ключ (primary key) представляет собой один из примеров уникальных индексов и применяется для уникальной идентификации записей таблицы. Никакие из двух записей таблицы не могут иметь одинаковых значений первичного ключа. Первичный ключ обычно сокращенно обозначают как PK (primary key).

Внешний ключ сокращенно обозначают как FK (foreign key)...внешний ключ ссылается на первичный ключ таблицы themes, устанавливая однозначную логическую связь между записями таблиц themes и posts.

Проще говоря, в каждой таблице у каждой записи есть уникальный индекс, формируемый обычно автоматически, и по необходимости могут быть дополнительные - внешние ключи, которые связывают таблицы.
У тебя есть таблица с первичным ключом и названием.
В другой таблице тоже есть первичный ключ и название. Для связки применяется FK/
Получается
1таблица
id(primary key) || name
1 || sd
2 || ad

2 таблица
id(primary key) || name|| id_art(foreign key)
1 || debri || 1
2 ||artist || 1
3 || nemo ||1
4 || villa ||2

ну и так далее. Значение внешнего ключа id_art(foreign key) соответствует первичному ключу из первой таблицы и устанавливает однозначную логическую связь.
Если ты делаеш запрос к первой таблице
SELECT * FROM table1 получаеш id название, формируеш к примеру гиперссылку
и делаеш второй запрос
SELECT name FROM table2 WHERE id_art=".$_GET['id']."
Обходиш циклом и выводиш результат.
при id =1
debri
artist
nemo

   
 
 автор: Panker   (02.09.2006 в 10:31)   письмо автору
 
   для: куч1963   (02.09.2006 в 10:03)
 

прости, ты видел где нибуть скрипт который так сделан? на вовебе или где, просто малоли ты видел, а то пока я перекопа все скрипты ... (((

( я просто не догоняю :( )

   
 
 автор: куч1963   (02.09.2006 в 11:58)   письмо автору
 
   для: Panker   (02.09.2006 в 10:31)
 

Вот для примера добавление разделов и названия статей.

<?php
require_once("config.php");
 function 
echo_modcat(){
echo 
'<table cellpadding="2"  cellspacing="0" summary="0" border="1" width="160">
<tr><td>Добавить:</td></tr><form action=index1.php method=post>
<tr><td><b>Раздел:</b><br>
<input type="text" name="name" size="25" maxlength="14"><br>
<input type="hidden" name="adc" value="1">
<input type="submit" value="Ok" class="button">
</td></tr></form><form action="index1.php" method="post">
<tr><td><b>Статью:</b><br>
<input type="text" name="name" size="25" maxlength="20"><br>
<select name=cid><option value=0>В корень'
;
$rez mysql_query("SELECT * FROM categories order by id");
$i 0;
WHILE (
$num=mysql_fetch_array($rez)){
echo 
"<option value=".$num['id'].">".$num['name']."\n";
$i++;
}
echo
'</select><br>';
echo
'
<input type="hidden" name="ads" value="1">
<input type="submit" value="Ok" class="button">
</td></tr></form></table>'
;}

//Добавить раздел
if(isset ($_POST['adc'])){
if(empty(
$_POST['name'])){echo "<font color=#ff0000>Вы пытаетесь добавить пустое поле!</font>\n";}
elseif (isset(
$_POST['name']))
{
$qcheck mysql_query("select * from categories where name='".$_POST['name']."'");
if(
mysql_num_rows($qcheck) == 0)
{
mysql_query("INSERT INTO categories VALUES ('','".$_POST['name']."','')");
echo 
"<div><font color=\"#ff0000\">Добавлен раздел статей&nbsp;".$_POST['name']."</font></div>\n";
print 
"<HTML><HEAD>\n";
      print 
"<META HTTP-EQUIV='Refresh' CONTENT='3; URL=index1.php'>\n";
      print 
"</HEAD></HTML>\n";
      exit();
      }
else 

echo 
"Такой раздел уже существует!?";
}
}
}
//Добавить статью
elseif(isset ($_POST['ads'])){
if(empty(
$_POST['name'])){echo "<font color=\"#ff0000\">Вы пытаетесь добавить пустое поле!</font>\n";}
elseif (isset(
$_POST['name'])){$qcheck mysql_query

("select * from sub_categories where name='".$_POST['name']."'");
if(
mysql_num_rows($qcheck) == 0) { mysql_query

("INSERT INTO sub_categories VALUES ('','".$_POST['cid']."','".$_POST['name']."','','')");
echo 
"<div><font color=\"#ff0000\">Добавлена статья&nbsp;".$_POST['name']."</font></div>\n";
print 
"<HTML><HEAD>\n";
      print 
"<META HTTP-EQUIV='Refresh' CONTENT='3; URL=index1.php'>\n";
      print 
"</HEAD></HTML>\n";
      exit();}
else { echo 
"Такая статья уже существует!?";}}}
?>
<table >
<tr><td>
<?php echo_modcat();?>
</td></tr></table>

и таблицы

--
-- Структура таблицы `categories`
--

CREATE TABLE `categories` (
`id` int(11) NOT NULL auto_increment,
`name` tinytext NOT NULL,
`meta` tinytext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ;

--
-- Дамп данных таблицы `categories`
--

INSERT INTO `categories` VALUES (1, 'razdel1', '');
INSERT INTO `categories` VALUES (2, 'razdel2', '');
INSERT INTO `categories` VALUES (3, 'razdel3', '');
INSERT INTO `categories` VALUES (4, 'razdel4', '');

--
-- Структура таблицы `sub_categories`
--

CREATE TABLE `sub_categories` (
`id` int(11) NOT NULL auto_increment,
`c_id` int(11) NOT NULL default '0',
`name` varchar(64) NOT NULL default '',
`info` varchar(128) NOT NULL default '',
`meta` text,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=4 ;

--
-- Дамп данных таблицы `sub_categories`
--

INSERT INTO `sub_categories` VALUES (1, 1, 'Stat1', '', '');
INSERT INTO `sub_categories` VALUES (2, 1, 'Stat2', '', '');
INSERT INTO `sub_categories` VALUES (3, 2, 'вstat3', '', '');

   
 
 автор: Panker   (02.09.2006 в 12:46)   письмо автору
 
   для: куч1963   (02.09.2006 в 11:58)
 

большое спасио, буду разбератся :)

   
Rambler's Top100
вверх

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