|
|
|
| http://softtime.ru/forum/read.php?id_forum=3&id_theme=23733&page=1
Продолжение темы
Последний поста
Блин простите, говорю запутался ужасНО!
Давайте плиз ещё разок, как на уроке алгебры мля ))))
Таблица рубрик!
АйДи
Рубрика
Дата
Таблица статей!
АйДи
Название
Текст
Дата
Что теперь, умоляю разьесните ещё раз вот на примере русских таблиц
|
| |
|
|
|
|
|
|
|
для: Panker
(01.09.2006 в 22:51)
| | В твоем примере нет внешнего ключа в таблице статей.
Вот твой пример
Таблица рубрик!
АйДи- (Индекс PK 1 таблицы)
Рубрика
Дата
Таблица статей!
АйДи (Индекс PK 2 таблицы)
ID_rub ((Индекс FK =PK 1 таблицы, и осуществляющий связку таблиц)
Название
Текст
Дата | |
|
|
|
|
|
|
|
для: куч1963
(02.09.2006 в 06:57)
| |
Индекс PK 1 таблицы
(Индекс PK 2 таблицы
|
вот это что такое, и как осуествляется связка второй день не пойму
...
ну имли пример какойнить плиз, я имею ввиду состояние базы даных (((
я соверешнно не понимаю и запутался | |
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|
|
|
|
для: куч1963
(02.09.2006 в 10:03)
| | прости, ты видел где нибуть скрипт который так сделан? на вовебе или где, просто малоли ты видел, а то пока я перекопа все скрипты ... (((
( я просто не догоняю :( ) | |
|
|
|
|
|
|
|
для: 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\">Добавлен раздел статей ".$_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\">Добавлена статья ".$_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', '', ''); | |
|
|
|
|
|
|
|
для: куч1963
(02.09.2006 в 11:58)
| | большое спасио, буду разбератся :) | |
|
|
|