Добрый вечер. Есть таблица items В ней поля id и name Есть таблица fields В ней поля id, items_id и value Items_id соответствует полю id из первой таблицы В поле value необходимые значения Схематично: Items_id: 114 Value: test Items_id: 114 Value: test1 Тоесть в таблице несколько параметров для каждого items_id но у каждого свой id В файле php имеем переменную $id = id из первой таблицы Как вывести данные из полей value второй таблицы на основе id первой? Заранее спасибо
в общем таблицы слил в переменную $val=mysqli_query("SELECT * FROM 'pkco4_djcf_items', 'pkco4_djcf_fields_values' WHERE 'pkco4_djcf_items.id' = 'pkco4_djcf_fields_values.item_id'"); а как теперь вывести значения которые содержаться в поле pkco4_djcf_fields_values.value повторюсь для pkco4_djcf_items.id (допустим 114) есть несколько pkco4_djcf_fields_values.item_id(опять же 114) и для каждого свой pkco4_djcf_fields_values.value надо вывести все эти pkco4_djcf_fields_values.value в одну строку
руки за такое оторвать и пришить туда сам знаешь куда если кроме id которое заранее известно никакие данные из первой таблицы выводить не надо, то никакие соединения (джоины) не нужны Код (Text): "SELECT * FROM `pkco4_djcf_fields_values` WHERE `item_id` = 114" названия таблиц вырви глаз... --- Добавлено --- если нужны данные из первой таблицы, то Код (Text): "SELECT i.*, v.* FROM `pkco4_djcf_items` i RIGHT JOIN `pkco4_djcf_fields_values` v ON i.id = v.item_id WHERE v.item_id = 114"
если бы так просто items_id меняется(если бы было постоянно 114, то и проблем бы не было) я выше писал что items_id из второй таблицы соответствует id из первой(для каждого объекта этот id свой) и у каждого объекта несколько value для одного и того же item_id таблица items id name 114 name1 115 name2 116 name3 таблица items_values id items_id value 1 114 7 2 114 2 3 114 3 4 115 45 5 115 21 и тд запросом выше имеем таблицу id name id items_id value 114 name 1 114 7 114 name 2 114 2 114 name 3 114 3 вот мне надо в echo вытащить содержимое value на основе id( в данном примере 114) который совпадает с items_id как видим в столбце value несколько значений для одного items_id вот их и надо вывести в строку
что мешает их вывести в строку? --- Добавлено --- и что значит "если бы постоянно было 114"? 114 надо вывести или нет? если с каждым запросом id меняется, то используй в запросе переменную, если нужны несколько значений, то используй конструкцию IN , если нужны все значения, просто убери условие WHERE v.item_id = 114
не могу понять как вообще вывести значения из value(второй таблицы) на основе id из первой таблицы(учитывая что этот id плавающий, т.е для каждого объекта он свой) в файле переменные $Itemid = JRequest::getVar('Itemid', 0,'', 'int'); $item = $this->item; это все из первой таблице id выводится echo '<div class="title_top info"><h2>'.$item->id.'</h2>'; вот вместо $item->id надо вывести значение из value второй таблицы
совсем запутался определил переменные $item = $this->item; $valid = $item->id; (эта переменная цепляет id из первой таблицы в соответствии с документом) <? php $test = mysqli_query("SELECT * FROM 'pkco4_djcf_fields_values' WHERE 'item_id'= '$valid' "); $val1 = mysqli_fetch_array($test); echo '<div class="title_top info"><h2>'.$val1['value'].'</h2>'; тут еще куча кода ?> увы ничего не выводится
в итоге с подсказами и помощью код приведен к такому виду PHP: $mysqli = new mysqli('localhost', 'user', 'pass', 'base'); if ($mysqli->connect_error) { die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error); } $sql = "SELECT * FROM `pkco4_djcf_fields_values` WHERE `item_id`= '". $mysqli->real_escape_string($valid) ."' "; $result = $mysqli->query($sql); $val1 = mysqli_fetch_assoc($result); echo '<div class="title_top info"><h2>'.$val1['value'].'</h2>'; так как в таблице `pkco4_djcf_fields_values` у поля `item_id` несколько значений value то выводит знаки вопроса если значение одно то выводит его как надо подскажите как вывести несколько значений в строку