по сути у меня сейчас стоит
SELECT * FROM `tbl_articles`
и когда фетчу, то получаю cat_id в виде int, а вот как его на данные из 2-й таблицы заменить, т.е. как-то так:
SELECT `category` FROM `tbl_categories`
, аййй... все равно не въеду, просто не хочется каждый раз в php создавать запрос на выборку из БД именно названия категории, а что если массив окажется на 1000 элементов и более... Одним запросом можно это сделать?
Спустя 24 минуты, 27 секунд (7.07.2012 - 13:40) rooor написал(а):
JOIN
Спустя 31 минута, 44 секунды (7.07.2012 - 14:12) DarkLynx написал(а):
SELECT a.name, b.cat_name FROM tbl_articles AS a
JOIN tbl_categories AS b ON a.cat_id = b.id
Условия, сортировки, лимиты и так далее расставишь сам.
На выходе получишь
array =>
['name'] => имя статьи
['cat_name'] => имя категории
Спустя 10 минут, 32 секунды (7.07.2012 - 14:22) Stasonix написал(а):
Спасибо DarkLynx, разобрался, все получилось!
Правда из этого вышел массив, который бы хотелось переформатировать, т.е.
а сделать:
сложно?
Правда из этого вышел массив, который бы хотелось переформатировать, т.е.
Array
(
[0] => Array
(
[title] => Обработка формы
[category] => php
)
а сделать:
$data = array ( "php" => array( "обработка формы", "еще какой-то титл" )
сложно?
Спустя 7 минут, 34 секунды (7.07.2012 - 14:30) DarkLynx написал(а):
Не совсем понял что вы хотите.. С нормальными данными можете привести пример, что есть и что из этого должно получится. А то у Вас в одном массиве одно, потом еще массив в котором что то другое, не понятно откуда взявшееся.
Спустя 7 минут, 56 секунд (7.07.2012 - 14:38) Stasonix написал(а):
if ($result = $pdo->query("SELECT a.title, b.category FROM `articles` AS a
JOIN `categories` AS b ON a.cat_id = b.id"))
{
$result->execute();
$data = $result->fetchAll(PDO::FETCH_ASSOC);
echo "<pre>";
print_r($data);
echo "</pre>";
}
на выходе:
Array
(
[0] => Array
(
[title] => Обработка формы
[category] => php
)
[1] => Array
(
[title] => Функция 1
[category] => php
)
[2] => Array
(
[title] => Функция 2
[category] => php
)
[3] => Array
(
[title] => обзор PDO в пхп
[category] => pdo
)
[4] => Array
(
[title] => обзор MySQLi в пхп
[category] => mysqli
)
)
а хочется привести в более приемлемый (для меня) вид:
array
(
"php" => array ( "Обработка формы", "Функция 1", "Функция 2" ),
"pdo" => array ( "Обзор PDO в пхп"),
"mysqli" => array ( "Обзор MySQLi в пхп"),
)
Спустя 14 минут, 55 секунд (7.07.2012 - 14:53) DarkLynx написал(а):
foreach ($data as $value)
{
$data2[$value['category']][] = $value['title'];
}
var_dump($data2);
array
'php' =>
array
0 => string 'Обработка формы' (length=15)
1 => string 'Функция 1' (length=9)
2 => string 'Функция 2' (length=9)
'pdo' =>
array
0 => string 'обзор PDO в пхп' (length=15)
'mysqli' =>
array
0 => string 'обзор MySQLi в пхп' (length=18)
Спустя 8 минут, 20 секунд (7.07.2012 - 15:01) Stasonix написал(а):
DarkLynx
Респект!
Респект!