Связь между таблицами и вывод содержимого

TheJ4s

Новичок
Связь между таблицами и вывод содержимого

Делаю скрипт для сайта, который выводит категории, затем при нажатии на категорию выводит список статей, а потом уже сами статьи при выборе. Самый обычный сайт как у всех, но не много умею.
1й вопрос: Как грамотно создать таблицы в Mysql?
В моем варианте имеются 2 таблицы: категории и статьи

PHP:
CREATE TABLE kateg (  
 id_kateg int(5) NOT NULL auto_increment, 
  name text,  
  PRIMARY KEY (id_kateg) 
 ) TYPE=MyISAM;     

 CREATE TABLE stat (  
 id_st int(5) NOT NULL auto_increment,  
 name text, 
  soder text,  
 id_kateg int(10) default NULL, --- это я как понимаю принадлежность статьи к категории? 
  PRIMARY KEY (id_st)  ) TYPE=MyISAM;

Правильно ли таблицы я создал?


2й вопрос: как правильно сделать выдачу из Mysql? Вот пример моего кода, который просто выдает категории ссылками.

PHP:
<?php

$skat = mysql_query ("SELECT*FROM kateg ");
 if($skat) {
 	while ($row = mysql_fetch_array($skat))
 	{

 	echo ("<br /><a href='articles.php?kateg_id=".$row['kateg_id']."'>".$row['name']."</a><br />") ;

 	}
       }
?>
Что надо прописать чтобы ссылки работали? выводит только название, а id категории нет

3й вопрос: что надо прописать, чтобы при нажатии на категорию выдавался список статей этой категории? т.е как соединить таблицы.
и 4й: как правильно заполнять таблицы?
Извините за такую тупость, назрело куча вопросов, из-за какой-то вещи непонимаю ничего. Заранее спасибо!

-~{}~ 17.05.07 20:25:

Извините не в тот раздел поместил! надо было в php and mysql
 

Гравицапа

elbirret elcno
1. По поводу таблиц.
Называй лучше всё сразу на англ., например categories
Поверь, без знания английского будет тебе очень туго в будущем.
id_kateg - у тебя же есть уже название таблицы, зачем его к идентификатору добавлять? Называй просто id.
Это касается обоих таблиц, но структуру их ты правильно продумал.
Только странно, что если ты сам продумал эту структуру, то у тебя возникает вопрос "--- это я как понимаю принадлежность статьи к категории? "....
[sql]
CREATE TABLE kateg (
id_kateg int(5) NOT NULL auto_increment,
name text,
PRIMARY KEY (id_kateg)
) TYPE=MyISAM;

CREATE TABLE stat (
id_st int(5) NOT NULL auto_increment,
name text,
soder text, -- это что за поле?
id_kateg int(10) default NULL,
PRIMARY KEY (id_st) ) TYPE=MyISAM;
[/sql]
2. Вывод у тебя нормальный, только вот
2.1 А id категории не выводит, потому что у тебя поле по другому названо.
3. Ну для того что бы вывести список статей по определённой категории, тебе для начала надо выбрать из таблицы статей все статьи, у которых id_kateg как id у этой категории.
4. ...
Извините за такую тупость, назрело куча вопросов, из-за какой-то вещи непонимаю ничего. Заранее спасибо!
Было бы здорово, если ты сначала прочитал
PHP FAQ. Самая важная информация по PHP.
PHP FAQ: Хочу изучать PHP и Mysql. С чего начать?
потом
PHP FAQ: MySQL. Просто и понятно.
Вообще, пхпфак - не такой уж и большой ресурс (то есть ознакомится с ним, у тебя не займёт много времени), но очень полезный.
P.S. Так же тебе было бы неплохо найти и прочитать какую-нить книгу по базам данным и языку SQL.
 

TheJ4s

Новичок
спс, меня как раз интересует как соединить правильно или какие команды нужны для соединения таблиц, особенно функции join
а насчет полей реально пропустил! теперь ссылки норм
 

TheJ4s

Новичок
все отлично доперло как все делать! спасибо за помощь.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Про самое главное то забыли :))

не помешало б еще поле время публикации
 

TheJ4s

Новичок
спс, но в данный момент это ненужно) я уже знаю как это сделать)
 
Сверху