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

Форум MySQL

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

 

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

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

тема: Связь таблиц
 
 автор: Sergey1984   (21.12.2007 в 11:38)   письмо автору
 
 

В две таблицы из HTML формы одновременно записывается ТЕМА и НОВОСТЬ соответственно.

Подскажите пожалуйста как правильно связать две таблицы чтоб потом можно было из первой сделать ссылку на вторую?

   
 
 автор: Loki   (21.12.2007 в 11:42)   письмо автору
 
   для: Sergey1984   (21.12.2007 в 11:38)
 

если имеется ввиду что одной теме может соответствовать несколько новостей, то примерно так:
table_1
theme_id, theme_name

table_2
news_id, theme_id, news_text

   
 
 автор: Sergey1984   (21.12.2007 в 13:30)   письмо автору
 
   для: Loki   (21.12.2007 в 11:42)
 

Извиняюсь за не точный вопрос.
Есть форма
<html>
<body>
<form action="2.php" method="POST">
Тема:<input type="=text" name="Tema">
Новость:<input type="text" name="nov">
<br><input type="submit" value="сохранить" >
<input type="reset" value="Очистить">
</form>
</body>
</html>

<?php //2.php
$Nov= $_POST['nov'];
$Tema=$_POST['Tema'];
$link = mysql_connect("localhost", "root", "");
$sqwe= mysql_select_db('Novostnaja',$link);

//Создаются две таблицы
$sql = 'CREATE TABLE Table_1 (tema_id INT NOT NULL AUTO_INCREMENT, text_tema TEXT NOT NULL,
ndate DATETIME NOT NULL, PRIMARY KEY(tema_id))';
mysql_query($sql);
$sql2 = 'Create table table_2 (Novost_id int not null Auto_increment, tema_id int not null,
text_novost text not null, PRIMARY KEY(Novost_id))';
mysql_query($sql2);

//Заполнение таблиц: в одну тема, в другую новость
mysql_query ("INSERT INTO Table_1 (text_tema, ndate)
VALUES ('". addslashes($Tema). "', NOW())");
mysql_query ("INSERT INTO Table_2 (text_novost)
VALUES ('". addslashes($Nov). "')");

// Затем цикл выводит темы сообщений
$request = "SELECT text_tema, ndate FROM Table_1 ORDER BY ndate DESC";
$result = mysql_query($request);
while ($row = mysql_fetch_row($result)) {
print("<h3>". $row[0]. "</h3>");
};
?>

Мне надо чтоб при нажатии на Тему выводилась соответствующая ей новость. Как это сделать?
tema_id во второй таблице у меня почему-то всегда 0
Помогите, а то я уже всю голову сломал =(

   
 
 автор: halt.avmc   (21.12.2007 в 13:45)   письмо автору
 
   для: Sergey1984   (21.12.2007 в 13:30)
 

...tema_id во второй таблице у меня почему-то всегда 0

Если ты ВНИМАТЕЛЬНО посмотришь на свой запрос во вторую таблицу


mysql_query ("INSERT INTO Table_2 (text_novost)
VALUES ('". addslashes($Nov). "')");


То увидишь, что в неё ты НЕ ВСТАВЛЯЕШЬ ИД новости!...
поэтому у тебя там 0 (по твоим словам). На самом деле, судя по описанию второй таблицы

Create table table_2 (
 Novost_id int not null Auto_increment,
 tema_id int not null,
 text_novost text not null,
 PRIMARY KEY(Novost_id)
)

В неё новости ВООБЩЕ не добавляются, потому что tema_id не может быть NULL, а дефолтное значение ты НЕ ЗАДАЛ...


ЗЫ Убедительная просьба, АККУРАТНО оформлять вопросы! Это же невозможно нормально читать!

   
 
 автор: Loki   (21.12.2007 в 13:49)   письмо автору
 
   для: Sergey1984   (21.12.2007 в 13:30)
 

1. не надо при введении каждой новости пытаться создавать таблицу.
2. значение 0 у вас потому, что вы его туда не вводите. надо что-то типа такого
<?
mysql_query 
("INSERT INTO Table_1 (text_tema, ndate)
VALUES ('"
addslashes($Tema). "', NOW())");

$theme_id=mysql_insert_id();//узнаем последний добавленный идентификатор
mysql_query ("INSERT INTO Table_2 (text_novost, tema_id)
VALUES ('"
addslashes($Nov). "', $theme_id)");

   
 
 автор: Sergey1984   (21.12.2007 в 19:02)   письмо автору
 
   для: Loki   (21.12.2007 в 13:49)
 

Большое спасибо за совет. =) Теперь tema_id во второй таблице равна tema_id первой. Только подскажите пожалуйста как сделать чтоб при нажатии на первую tema_id выводилась вторая? Буду ну очень вам благодарен

   
Rambler's Top100
вверх

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