Loading...
PHP/MySQL | Подскажите с запросом
Onmen (19.06.2018 в 15:50)
PhpStorm (19.06.2018 в 15:49)
Onmen (19.06.2018 в 15:46)
PhpStorm (19.06.2018 в 15:34)
а я всё ещё жду когда мне кто-то даст запрос с join и выводом нескольких строк без цикла :-D

$sql = $conn->query("SELECT `img`.`name`,`img`.`img_date`, `tags`.`name` AS 'tag_name' FROM `img`, `tags` WHERE `img`.`tags` = `tags`.`id`") or die (mysqli_error($conn));
while ($row = $sql->fetch_array()) {
$output .= '<tr>';
$output .= '<td><img class="echo_img" src="/img/' . $row['name'] . ' "></td><td>' . $row['img_date'] . '</td><td>' . $row['tag_name'] . '</td>';
$output .= '</tr>';
};



в список выбора по select по идее нужно добавить id и он будет в $row['id']

зачем $row['id'] когда $row['tag_name'] я и так получаю строку id


у тебя в tag_name судя по скрину содержимое ячейки, на скрине в структуре таблы я не вижу столбца id вообще :-(
Onmen (19.06.2018 в 15:51)
PhpStorm, и $row['id'] выведет айди картинки, а не категории, запрос перечитай)


ну значит добавить не id в select, а tags.id as tag_id блин включайся :-)

будет тогда в $row['tag_id']
________
посл. ред. 19.06.2018 в 15:55; всего 1 раз(а); by PhpStorm
PhpStorm (19.06.2018 в 15:52)
Onmen (19.06.2018 в 15:50)
PhpStorm (19.06.2018 в 15:49)
Onmen (19.06.2018 в 15:46)
PhpStorm (19.06.2018 в 15:34)
а я всё ещё жду когда мне кто-то даст запрос с join и выводом нескольких строк без цикла :-D

$sql = $conn->query("SELECT `img`.`name`,`img`.`img_date`, `tags`.`name` AS 'tag_name' FROM `img`, `tags` WHERE `img`.`tags` = `tags`.`id`") or die (mysqli_error($conn));
while ($row = $sql->fetch_array()) {
$output .= '<tr>';
$output .= '<td><img class="echo_img" src="/img/' . $row['name'] . ' "></td><td>' . $row['img_date'] . '</td><td>' . $row['tag_name'] . '</td>';
$output .= '</tr>';
};



в список выбора по select по идее нужно добавить id и он будет в $row['id']

зачем $row['id'] когда $row['tag_name'] я и так получаю строку id


у тебя в tag_name судя по скрину содержимое ячейки, на скрине в структуре таблы я не вижу столбца id вообще :-(

есть, просто по запросу он сразу показывает имена по айди тегов, вот структурный вид)) https://prnt.sc/jwq60t
Onmen (19.06.2018 в 15:58)
PhpStorm (19.06.2018 в 15:52)
Onmen (19.06.2018 в 15:50)
PhpStorm (19.06.2018 в 15:49)
Onmen (19.06.2018 в 15:46)
PhpStorm (19.06.2018 в 15:34)
а я всё ещё жду когда мне кто-то даст запрос с join и выводом нескольких строк без цикла :-D

$sql = $conn->query("SELECT `img`.`name`,`img`.`img_date`, `tags`.`name` AS 'tag_name' FROM `img`, `tags` WHERE `img`.`tags` = `tags`.`id`") or die (mysqli_error($conn));
while ($row = $sql->fetch_array()) {
$output .= '<tr>';
$output .= '<td><img class="echo_img" src="/img/' . $row['name'] . ' "></td><td>' . $row['img_date'] . '</td><td>' . $row['tag_name'] . '</td>';
$output .= '</tr>';
};



в список выбора по select по идее нужно добавить id и он будет в $row['id']

зачем $row['id'] когда $row['tag_name'] я и так получаю строку id


у тебя в tag_name судя по скрину содержимое ячейки, на скрине в структуре таблы я не вижу столбца id вообще :-(

есть, просто по запросу он сразу показывает имена по айди тегов, вот структурный вид)) https://prnt.sc/jwq60t


ну если по этой структуре, то tags нужно добавить в выборку по select

в $row['tags'] они тогда прилетят
PhpStorm, Если честно не понял Гг
Onmen (19.06.2018 в 16:03)
PhpStorm, Если честно не понял Гг


смотри у тебя tags в одной из таблиц, тебе нужен tags, ты делаешь выборку, объединяя эти таблицы

SELECT `img`.`name`,`img`.`img_date`, `tags`.`name` AS 'tag_name'

тебе нужно добаваить сюда tags

SELECT `tags`, `img`.`name`,`img`.`img_date`, `tags`.`name` AS 'tag_name'

ну и по логике у тебя в $row['tags'] будет id тега, но я смотрю у тебя в tags в некоторых есть две цифры, типа 13 14
________
посл. ред. 19.06.2018 в 16:09; всего 1 раз(а); by PhpStorm
PhpStorm (19.06.2018 в 16:07)
Onmen (19.06.2018 в 16:03)
PhpStorm, Если честно не понял Гг


смотри у тебя tags в одной из таблиц, тебе нужен tags, ты делаешь выборку

SELECT `img`.`name`,`img`.`img_date`, `tags`.`name` AS 'tag_name'

тебе нужно добаваить сюда tags

SELECT `tags`, `img`.`name`,`img`.`img_date`, `tags`.`name` AS 'tag_name'

ну и по логике у тебя в $row['tags'] будет id тега, но я смотрю у тебя в tags в некоторых есть две цифры, типа 13 14

Да, вот и сама суть вопроса, это цифры, айди с таблицы тегов, то есть у каждой картинки может быть не сколько категорий, как вывести все категории , а не только 1?)
Onmen (19.06.2018 в 16:09)
PhpStorm (19.06.2018 в 16:07)
Onmen (19.06.2018 в 16:03)
PhpStorm, Если честно не понял Гг


смотри у тебя tags в одной из таблиц, тебе нужен tags, ты делаешь выборку

SELECT `img`.`name`,`img`.`img_date`, `tags`.`name` AS 'tag_name'

тебе нужно добаваить сюда tags

SELECT `tags`, `img`.`name`,`img`.`img_date`, `tags`.`name` AS 'tag_name'

ну и по логике у тебя в $row['tags'] будет id тега, но я смотрю у тебя в tags в некоторых есть две цифры, типа 13 14

Да, вот и сама суть вопроса, это цифры, айди с таблицы тегов, то есть у каждой картинки может быть не сколько категорий, как вывести все категории , а не только 1?)


то есть у тебя не выводит 13 14, а нужно и 13 и 14?

тогда типа проверять $row['tags'] на наличие пробела, формировать массив и выводить id из массива по одному


<?php
$row['tags'] = '13 14';
$tags_id = array_map('trim', explode(' ', $row['tags']));
foreach($tags_id as $value) {
echo $value . '<br>';// выводит id либо все id, если их несколько в одной ячейке
// сюда тег с картинкой, в которой название - это $value
}


Изображение

------
57141_DeepinScreenshot_20180619162630.png (128.7 Kb)
Скачиваний: 98
PhpStorm (19.06.2018 в 16:26)
Onmen (19.06.2018 в 16:09)
PhpStorm (19.06.2018 в 16:07)
Onmen (19.06.2018 в 16:03)
PhpStorm, Если честно не понял Гг


смотри у тебя tags в одной из таблиц, тебе нужен tags, ты делаешь выборку

SELECT `img`.`name`,`img`.`img_date`, `tags`.`name` AS 'tag_name'

тебе нужно добаваить сюда tags

SELECT `tags`, `img`.`name`,`img`.`img_date`, `tags`.`name` AS 'tag_name'

ну и по логике у тебя в $row['tags'] будет id тега, но я смотрю у тебя в tags в некоторых есть две цифры, типа 13 14

Да, вот и сама суть вопроса, это цифры, айди с таблицы тегов, то есть у каждой картинки может быть не сколько категорий, как вывести все категории , а не только 1?)


то есть у тебя не выводит 13 14, а нужно и 13 и 14?

тогда типа проверять $row['tags'] на наличие пробела, формировать массив и выводить id из массива по одному


<?php
$row['tags'] = '13 14';
$tags_id = array_map('trim', explode(' ', $row['tags']));
foreach($tags_id as $value) {
echo $value . '<br>';// выводит id либо все id, если их несколько в одной ячейке
// сюда тег с картинкой, в которой название - это $value
}


Я всё вар дампом проверяю) конечно он всё правильно передаёт)

Изображение

------
57142_20180619163114.png (150.0 Kb)
Скачиваний: 112
PhpStorm, А вот как отображается

Изображение

------
57143_20180619163310.png (150.6 Kb)
Скачиваний: 108
Онлайн: 5
Время:
Gen. 0.0962
(c) Bym.Guru 2010-2025