|
|
|
| Есть таблица Theme ( В ней записаны темы сайтов )
Есть таблица Domen ( В ней записаны адреса сайтов и темы по id )
то есть примерно так
Theme - id, name, theme
Domen - id, name, theme
В домене у меня записано допустим так - 1, rambler.ru, поисковик
А в темах у меня так - 1, поисковики, третье поле пустое ( ненужное можно сказать )
Как мне в списке вывести типа
----Поисковики ( то что в id 1 записано в теме )
А тут все сайты где в theme записано id = 1
то есть типа
Theme = 1
Domen all = 1
Списком?
Трудно обьяснить, может кто понял, подскажите :( | |
|
|
|
|
|
|
|
для: Panker
(10.05.2007 в 17:09)
| | не кто не знает ? :(
или обьяснил не понятно :( | |
|
|
|
|
|
|
|
для: Panker
(10.05.2007 в 17:09)
| | Таблицы оказались несвязанными друг с другом.
напрашивается нечно вроде
Theme (id, name)
1 Поисковик
2 Магазин
3 Развлекательный портал
4 web-студия
Domain (id, name, theme_id)
1 yandex.ru 1
2 bash.org.ru 3
3 ozon.ru 2
4 softtime.ru 4
SELECT Domain.*, Theme.name FROM
Domain LEFT JOIN Theme ON Domain.theme_id=Theme.id
|
Но такой структуры может не хватить для сложных случаев, когда один домен проявляется в разных ипостасях. В принципе, тут нужна связующая таблица.
А объясняете Вы как обычно. Дольше думашь над вопросом, чем над решением. | |
|
|
|
|
|
|
|
для: Trianon
(14.05.2007 в 13:26)
| |
SELECT Domain.*, Theme.name FROM
Domain LEFT JOIN Theme ON Domain.theme_id=Theme.id
|
Большое спасибо, тока плиз подскажите как это в php вывести :)
а то чт от оне до понимаю ) у мну раньше постраничная навигация была, там так
$quer = "SELECT count(*) FROM Domen";
$res = mysql_query($quer);
$total = mysql_fetch_array($res);
$count = $total['count(*)'];
|
ну и так далее, а тут постранично не надо и что то под задумался :) | |
|
|
|
|
|
|
|
|
для: Trianon
(16.05.2007 в 09:33)
| | хех :) Спасибо :)
$ath = mysql_query("SELECT Domen.*, Theme.name FROM Domen LEFT JOIN Theme ON Domen.theme=Theme.id;");
if($ath)
{
while($author = mysql_fetch_array($ath))
{
echo "id = ".$author['id']."<br>";
echo "name-theme = ".$author['name']."<br>";
}
}
else
{
echo "<p><b>Error: ".mysql_error()."</b><p>";
exit();
}
|
вот сделал так но:
1 Не выводит все категории а тока первую :(
2 Как под категориями вывести все домены что тносятся к данной категории? | |
|
|
|
|
|
|
|
для: Panker
(16.05.2007 в 10:12)
| | >1 Не выводит все категории а тока первую :(
Быть не может. показывайте содержимое таблиц. Лучше - дампом.
>2 Этот запрос выводит все домены вместе с их категориями.
А Вы хотели все категории, пусть даже и пустые?
тогда несколько по-другому.
тогда нужно
SELECT Theme.*, Domen.name as DomName FROM Theme LEFT JOIN Domen ON Theme.id=Domen.theme ORDER BY theme.name
|
echo $row['name'] .' -- ' .$row['DomName'] ."<br>";
P.S. mysql_fetch_array лучше заменить на mysql_fetch_assoc . Путаницы будет меньше.
P.P.S. что такое $author? Вам лениво имя придумать нормальное? | |
|
|
|
|
|
|
|
для: Trianon
(16.05.2007 в 10:30)
| | не не лениво, просто сейчас это, ну типа тестирую смотрю и так далее :)
вот сделал так как вы сказали, в обще не чего не выводит :)
$ath = mysql_query("SELECT Theme.*, Domen.name as DomName FROM Theme LEFT JOIN Domen ON Theme.id=Domen.theme ORDER BY theme.name;");
if($ath)
{
while($author = mysql_fetch_assoc($ath))
{
echo $row['id'] .' -- ' .$row['name'] ."<br>";
}
}
else
{
echo "<p><b>Error: ".mysql_error()."</b><p>";
exit();
}
|
и что такое DomName :) | |
|
|
|
|
|
|
|
для: Panker
(16.05.2007 в 12:22)
| | DomName - синоним Domen.name . это написано в самом начале SELECT.
Вы не ответили что такое $author - поэтому и не выводит. | |
|
|
|
|
|
|
|
для: Trianon
(16.05.2007 в 12:27)
| | простите, запутался :) Иногда сам над собой смеюсь :)
всё отлично, дериктории выводятся, темы доменов точней, пожалуйста помогите доделать, что бы ПОД одной темой выводились все домены что записаны именно в эту тему...
Пока вот что у мну есть, ну то что вы и дали :)
$Domens = mysql_query("SELECT Theme.*, Domen.name as DomName FROM Theme LEFT JOIN Domen ON Theme.id=Domen.theme ORDER BY theme.name;");
if($Domens)
{
while($Domen = mysql_fetch_assoc($Domens))
{
echo $Domen['id'] .' -- ' .$Domen['name'] ."<br>";
}
}
else
{
echo "<p><b>Error: ".mysql_error()."</b><p>";
exit();
}
|
| |
|
|
|
|
|
|
|
для: Panker
(16.05.2007 в 15:34)
| |
<?
$Domens = mysql_query("
SELECT Theme.*, Domen.name as DomName
FROM Theme
LEFT JOIN Domen ON Theme.id=Domen.theme
ORDER BY theme.name
");
if($Domens)
{
$Theme = '';
while($Domen = mysql_fetch_assoc($Domens))
{
if($Theme != $Domen['name'])
echo "<br>Theme: ".htmlspecialchars($Theme = $Domen['name'])."<br>";
echo "Domain:".$Domen['DomName'] ."<br>";
}
}
else
{
echo "<p><b>Error: ".mysql_error()."</b><p>";
exit();
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(16.05.2007 в 16:24)
| | Всем привет!
Я не очень понял тот код выше.
Теперь помогите плиз мне. Я делаю сайт он состоит из 1 раздела СТАТЬИ, т.к для всего остального есть форум.
В MySQL я создал 2 таблицы одна kateg -категории, с полями id_kateg - PK и name - название категории...вторая табл. stat с полями id_stat - pk, name - название статьи, text - статья, id_kateg(если как я понял правильно внешний ключ для связи с категориями, чтобы установить к какой категории принадлежит статья). Подскажите как правильно заполнять поля..т.е какими значениями в полях id_stat например и id_kateg в той же таблице stat.
И 2й вопрос: Как вывести категории на страницу, чтобы при нажатии на категорию перейти к списку статей какой-то категори ну и дальше выбрать саму статью, чтобы прочесть.
Понимаю что прошу многого, но только учусь и пока с трудом понмаю, но быстро. Если не затруднит жду ответов | |
|
|
|
|
|
|
|
для: The J4s
(16.05.2007 в 18:34)
| | Ответ на вопрос N1
в таблице kateg:
id_kateg - это уникальный индекс
в таблице stat:
id_stat в Вашей таблице stat - это уникальный индекс, т.е. он будет разным для каждой записи в БД. id_kateg - это индекс, который определяет принадлежность статьи к категории...
Следовательно в stat.id_kateg должно быть число из kateg.id_kateg... Оно будет определять принадлежность статьи к категории....
Вопрос N2
Пусть у Вас будет 2 файла один - выводит категории, другой статьи.
Сначала надо вывести категории на страницу из БД, при этом имя категории - это ссылка кликнув на которую пользователь получает доступ к списку статей данной категории(переходит в файл со статьями), можно сделать так, (опять же для простоты понимния) в каждой ссылке прописать пару параметр = значение в данном случае id_kateg=$id_kateg, после того как пользователь переходит на страницу со статьями, скрипт забирает индекс категории, и ищет в БД статьи которым соответствует данный индекс.
Это корявый вариант, для простоты понимания, вообще это делается в одном скрипте... более элегантно...
Если совсем туго с текстом, могу написать скрипт... | |
|
|
|
|
|
|
|
для: mefestofel
(16.05.2007 в 20:10)
| | если вас незатруднит буду очень благодарен
для сравнения скажите какие поля и значения...например 2 скрипта Create table stati и create table kateg.
Нужен маленький пример странички вывода категорий, и странички статей в категории, дальше я сам попробую саму страницу статьи написать...чтож делать только начинаю вникать в пхп | |
|
|
|
|
|
|
|
для: The J4s
(16.05.2007 в 20:19)
| | >для сравнения скажите какие поля и значения...например 2 скрипта Create table stati и create table kateg.
Не понял вопрос? | |
|
|
|
|
|
|
|
для: mefestofel
(16.05.2007 в 20:26)
| | для сравнения с моими....
я правильно создаю 2 таблицы?
CREATE TABLE kateg (
id_kateg int(10) NOT NULL auto_increment,
name text,
PRimary key и т.д
CREATE TABLE stati (
id_text int(5)NOT NULL auto_increment,
name text,
text text,
id_kateg NOT NULL,
PRIMARY KEY (id_text)
) TYPE=MyISAM;
Ладно оставим тему с таблицами помогите со скриптом | |
|
|
|
|
|
|
|
для: The J4s
(16.05.2007 в 20:30)
| | АУУ народ | |
|
|
|
|
|
|
|
для: mefestofel
(16.05.2007 в 20:10)
| | Все спасибо, я все понял, все сделал сам, без всяких join просто использовал where тото=тото
Один человек помог только( ппц | |
|
|
|