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

Форум MySQL

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

 

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

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

тема: Вывод названия нескольких категорий
 
 автор: kis-kis   (18.10.2007 в 21:14)   письмо автору
 
 

Помогите найти ошибку в коде:

Нужно вывести название нескольких категорий:


        if (!$cafe['cuisine']) $cuisine_list = "не известно"; else {

        $cuisine_list = array ();
        $cat_list = explode (',', $cafe['cuisine']);
    
            foreach ($cat_list as $element) {
                if ($element) $cuisine_list[] = $cuisine[$cafe['cuisine']]['title'];
            }
        $cuisine_list = implode (', ', $cuisine_list);
        }

Спасибо.

   
 
 автор: Саша   (19.10.2007 в 11:37)   письмо автору
 
   для: kis-kis   (18.10.2007 в 21:14)
 

не в тот форум запостил?

   
 
 автор: cheops   (19.10.2007 в 12:15)   письмо автору
 
   для: kis-kis   (18.10.2007 в 21:14)
 

А в чём выражается ошибка?

   
 
 автор: kis-kis   (19.10.2007 в 12:19)   письмо автору
 
   для: cheops   (19.10.2007 в 12:15)
 


CREATE TABLE `cuisine` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=33 ;
-- 
-- Дамп данных таблицы `cuisine`
-- 
INSERT INTO `cuisine` (`id`, `title`) VALUES (1, 'Домашняя');
INSERT INTO `cuisine` (`id`, `title`) VALUES (2, 'Морская');
INSERT INTO `cuisine` (`id`, `title`) VALUES (3, 'Австралийская');
INSERT INTO `cuisine` (`id`, `title`) VALUES (4, 'Немецкая');
INSERT INTO `cuisine` (`id`, `title`) VALUES (5, 'Авторская');
INSERT INTO `cuisine` (`id`, `title`) VALUES (6, 'Европейская');
INSERT INTO `cuisine` (`id`, `title`) VALUES (7, 'Американская');
INSERT INTO `cuisine` (`id`, `title`) VALUES (8, 'Индийская');
INSERT INTO `cuisine` (`id`, `title`) VALUES (9, 'Русская');
INSERT INTO `cuisine` (`id`, `title`) VALUES (10, 'Английская');


CREATE TABLE `cafe` (
  `id` int(11) NOT NULL auto_increment,
  `category` varchar(100) NOT NULL default '0',
  `cuisine` varchar(100) NOT NULL default '0',
  `title` varchar(200) NOT NULL default '',
  `work_time` varchar(100) NOT NULL default '',
  `inform` text NOT NULL,
  `address` varchar(200) NOT NULL default '',
  `tel` varchar(100) NOT NULL default '',
  `www` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`),
  KEY `cuisine` (`cuisine`),
  KEY `category` (`category`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;
-- 
-- Дамп данных таблицы `cafe`
-- 
INSERT INTO `cafe` (`id`, `category`, `cuisine`, `title`, `work_time`, `inform`, `address`, `tel`, `www`) VALUES (1, '2,3', '2,6,8', 'Дети солнца', '09.00-01.00', 'Информация', 'ул. Интернациональная, 26', '72-75-72', '');

   
 
 автор: kis-kis   (19.10.2007 в 12:20)   письмо автору
 
   для: kis-kis   (19.10.2007 в 12:19)
 

Нужно вывести виды кухни, которая есть в кафе - cuisine. Их 2, как вывести их через запятую?
Спасибо.

   
 
 автор: cheops   (19.10.2007 в 14:15)   письмо автору
 
   для: kis-kis   (19.10.2007 в 12:20)
 

Во первых следует поместить выражение
<?php
  
...
  while(
$cafe mysql_fetch_array($caf))
  {
    ...
  }
  ...
?>

в цикл.

   
 
 автор: kis-kis   (19.10.2007 в 14:21)   письмо автору
 
   для: cheops   (19.10.2007 в 14:15)
 

Вот запрос:


$query_cuisine = "SELECT * FROM cuisine WHERE id='$cafe[cuisine]'";
$result_cuisine=mysql_query($query_cuisine) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
while($cuisine = mysql_fetch_array($result_cuisine))
{

if (!$cafe['cuisine']) $cuisine_list = "не известно"; else { 

        $cuisine_list = array (); 
        $cat_list = explode (',', $cafe['cuisine']); 
     
            foreach ($cat_list as $element) { 
                if ($element) $cuisine_list[] = $cuisine[$cafe['cuisine']]['title']; 
            } 
        $cuisine_list = implode (', ', $cuisine_list); 
        }

echo "".$cuisine_list."";
}


Выводит только запятые, без названия вида

   
Rambler's Top100
вверх

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