Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Собрать ссылку из БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
goga5
Отправлено: 25 Августа, 2012 - 00:05:48
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Здравствуйте!

имеем таблицу "category" и таблицу с новостями "post"

в таблице "category" имеем: "posi (тут цифры категорий, 1,2,3,4)" и "name (тут названия категории, которые используется в ссылках, video, foto, films, prikoli)", например, к столбику 1 относится video, 2-foto и.т.д. (блин, помоемому я попутал, поймете ли что я пишу Не понял )

в таблице "post" имеем: "story (сама новость)" и "category (цифры от категории от 1 до 4)"

показываем 10 новостей

PHP:
скопировать код в буфер обмена
  1. $result = $db->query("SELECT * FROM post LIMIT 10");
  2. while($novost = $db->get_row($result)) {
  3.  
  4. тут все новости, хочу  собрать ссылки под каждой новостью
  5.  
  6. $ssilka = '<a href="http://site.ru/' . $novost['category'] . '/' . $novost['id'] . $novost['alt_name'] . '.html">Ссылка</a>';
  7. }



всё получается кроме там где "$novost['category']", тут появляются цифры а мне нужна сама категория, питался сделать так

PHP:
скопировать код в буфер обмена
  1. $result = $db->query("SELECT * FROM post LIMIT 10");
  2. while($novost = $db->get_row($result)) {
  3.  
  4. тут все новости, хочу  собрать ссылки под каждой новостью
  5.  
  6. $cat = $db->query("SELECT * FROM category WHERE posi='{$novost[category]}' ");
  7. $cat = $db->get_row($cat);
  8.  
  9. $ssilka = '<a href="http://site.ru/' . $cat['name'] . '/' . $novost['id'] . $novost['alt_name'] . '.html">Ссылка</a>';
  10. }


имена категорий появляются в ссылках но не соответствуют к своей новости, как сравнить цифру с таблицей "category" там где поле "posi" и вывести нужную категорию "name" ? помогите пожалуйста...

(Отредактировано автором: 25 Августа, 2012 - 00:06:52)

 
 Top
Viper
Отправлено: 25 Августа, 2012 - 06:24:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT a.*, b.*
  2. FROM `category` AS a
  3. LEFT JOIN `news` AS b ON `b`.`id_news` ON `a`.`id_category`
  4. WHERE ...
  5. GROUP BY `id_news`


как-то так.

PS! На будущее приводите стуктуры таблиц.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
goga5
Отправлено: 25 Августа, 2012 - 13:34:00
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Viper пишет:
как-то так.

Спасибо огромное!
 
 Top
goga5
Отправлено: 25 Августа, 2012 - 18:20:08
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Чтото не работает, выдает ошибку, пробовал делать так

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT a.*, b.*
  2. FROM `category` AS a
  3. LEFT JOIN `news` AS b ON `b`.`id_news` AS a ON `a`.`id_category`
  4. WHERE ...
  5. GROUP BY `id_news`


но и так тоже не работает, посмотрите пожалуйста где ошибка ? ошибка появляется в этой области

Цитата:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ON `a`.`posi`
 
 Top
Klinch
Отправлено: 25 Августа, 2012 - 20:44:56
Post Id


Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Попробуйте так:

PHP:
скопировать код в буфер обмена
  1. $result = $db->query("SELECT * FROM post LIMIT 10");
  2. while($novost = $db->get_row($result)) {
  3.  
  4. тут все новости, хочу  собрать ссылки под каждой новостью
  5.  
  6. $ssilka = '<a href="http://site.ru/' . $novost[category] . '/' . $novost[id] . $novost[alt_name] . '.html">Ссылка</a>';
  7. }

(Добавление)
Либо попробуйте так:

PHP:
скопировать код в буфер обмена
  1. $result = $db->query("SELECT * FROM post LIMIT 10");
  2. while(mysql_fetch_array($result))
  3. {
  4.  
  5. // тут все новости, хочу  собрать ссылки под каждой новостью
  6.  
  7. $ssilka = '<a href="http://site.ru/' . $novost[category] . '/' . $novost[id] . $novost[alt_name] . '.html">Ссылка</a>';
  8. }


или

PHP:
скопировать код в буфер обмена
  1. $result = $db->query("SELECT * FROM post LIMIT 10");
  2. while(mysql_fetch_array($result))
  3. {
  4.  
  5. // тут все новости, хочу  собрать ссылки под каждой новостью
  6.  
  7. $ssilka = '<a href="http://site.ru/' . $novost['category'] . '/' . $novost['id'] . $novost['alt_name'] . '.html">Ссылка</a>';
  8. }

(Отредактировано автором: 25 Августа, 2012 - 20:46:41)

 
 Top
goga5
Отправлено: 25 Августа, 2012 - 21:09:58
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Klinch пишет:
Попробуйте так:

Нет это не то что нам нужно, так как мы имеем две таблицы "category" и "post", в "post" имеем новости а категории в нем обозначены цифрами, в "category" имеем эти-же цифры и каждая цифра обозначает свою категорию, например в строке где 1 имеем поле video, 2 - foto, 3 - films, 4 - prikoli, нужно состыковать цифры таблиц "category" и "post" и вывести из "category" имя категории.

(Отредактировано автором: 25 Августа, 2012 - 21:16:10)

 
 Top
Klinch
Отправлено: 26 Августа, 2012 - 06:16:36
Post Id


Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Так?

PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM post");
  2. while($novost = $db->get_row($result))
  3. {
  4. $res = mysql_query("SELECT name FROM category WHERE posi='{$novost[category]}' ");
  5.  
  6. $ssilka = '<a href="http://site.ru/' . $res . '/' . $novost['id'] . $novost['alt_name'] . '.html">Ссылка</a>';
  7. }
  8.  
  9.  
  10.  
 
 Top
goga5
Отправлено: 26 Августа, 2012 - 20:24:10
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Klinch пишет:
Так?

Огромное спасибо, всё получилось!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB