
BG Development · За реклама · За контакти |
![]() ![]() ![]() ![]() ![]() |
Здравей! ( Включване | Регистриране ) |
![]() ![]() ![]() |
rootkit82 |
Публикувано на: 28-01-2021, 01:43
|
||
Име: Драго Група: Потребител Ранг: Новопостъпил Мнения: 6 Регистриран на: 28.01.21 ![]() |
Здравейте от мен. В момента навлизам в програмирането ... ей така за удоволствие и нищо повече. Та си правя разни експериментални неща. В момента имам следния проблем. Имам две бази с имена galleryCat: gal_id, gallery, uidUsers и другата е: imageCat: img_id, gal_id, file_name, uidUsers. Да кажа за двете бази .... в galleryCat се записват ИД на галерията и името на добавената галерия от потребителя. В imageCat съответно ид на снимката, ид на галерията в която се поства снимката, пътя на снимката и накрая е номера на регистрирания потребител. Идеята е ..........от двете бази да се вижда само името на галерията, колко снимки има в самата галерия под номер и 1 снимка от дадената галерия. Стигнах до този код :
Но след четене и пробване нещата са до кривата круша. По какъв начин да вкарам file_name в кода за да може да се вижда и снимката. Понеже в момента както е кода .... се вижда името на Галерията, колко снимки има в самата галерия (6) ... но снимката не се вижда. Някой може ли да помогне с кода? Как трябва да е правилно да се вкара file_name за да може да се вижда и снимката. Благодаря предварително. |
||
escapeboy |
Публикувано на: 28-01-2021, 09:37
|
||||||
![]() Име: Никола Кацаров Група: Потребител Ранг: Редовен член Мнения: 430 Регистриран на: 04.12.04 ![]() |
Както си го направил може към select-a да добавиш imageCat.file_name
тъй като правиш групиране ще вземе една от всички снимки. Проблема е че няма да знаеш коя точно и при strict mode може да хвърли грешка Друг вариант е да използваш вложен селект
Още един вариант е да вземеш от imageCat таблицата, да направиш JOIN на galleryCat и да групираш по gal_id. По-добър вариант за именуване на полетата, че не ми харесват така ![]()
-------------------- |
||||||
thrawn |
Публикувано на: 28-01-2021, 10:11
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3076 Регистриран на: 17.01.17 ![]() |
"Правилното" решение е да се ползва window функция за броенето вместо агрегатна. След това вече е възможно да се получи желаната информация.
Тук въпросът обаче е, на каква база данни ще се изпълнява. |
rootkit82 |
Публикувано на: 28-01-2021, 11:09
|
||||
Име: Драго Група: Потребител Ранг: Новопостъпил Мнения: 6 Регистриран на: 28.01.21 ![]() |
Здравейте на всички. Благодаря първо за отговорите. Бързам да тествам и да пиша. escapeboy ..... първия пример посочен от теб съм го пробвал. Към select-a добавих imageCat.file_name но грешката която ми връща при този вид е тази:
ERROR: Could not able to execute SELECT gallery,COUNT(*), imageCat.file_name FROM galleryCat INNER JOIN imageCat on imageCat.gal_id = galleryCat.gal_id WHERE galleryCat.gal_id=imageCat.gal_id and galleryCat.uidUsers = 47 GROUP BY galleryCat.gal_id. Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'site.imageCat.file_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by Това с вложения селект не бях го пробвал по начина както ти си го написал. Сега го пробвах .... този вариянт написан работи но пак снимка не се вижда. А само име на Галерията, колко снимки са в галерията под номер и до там .... няма снимка.
Сори за полетата .... но както казах сега влизам в нещата и просто така ми беше по лесно на мен като ги именувам ![]() thrawn ..... window функция за броенето вместо агрегатна ..... честно казано трябва още да почета за там. Понеже не знам в момента как може да го докарам да работи с window функция |
||||
thrawn |
Публикувано на: 28-01-2021, 11:11
|
||
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3076 Регистриран на: 17.01.17 ![]() |
С коя версия на mysql си?
Това мнение е било редактирано от thrawn на 28-01-2021, 11:11 |
||
rootkit82 |
Публикувано на: 28-01-2021, 11:13
|
||
Име: Драго Група: Потребител Ранг: Новопостъпил Мнения: 6 Регистриран на: 28.01.21 ![]() |
А ето това дефакто ми е целия код:
Това мнение е било редактирано от rootkit82 на 28-01-2021, 11:15 |
||
rootkit82 |
Публикувано на: 28-01-2021, 11:18
|
Име: Драго Група: Потребител Ранг: Новопостъпил Мнения: 6 Регистриран на: 28.01.21 ![]() |
Версията ми е Current PHP version: 7.3.117.3.11
|
thrawn |
Публикувано на: 28-01-2021, 11:20
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3076 Регистриран на: 17.01.17 ![]() |
За базата данни питам, на за php-то.
Иначе, горе е зададен псевдоним image_file_name на полето а в кодът се опитваш да дотъпваш file_name |
rootkit82 |
Публикувано на: 28-01-2021, 11:25
|
Име: Драго Група: Потребител Ранг: Новопостъпил Мнения: 6 Регистриран на: 28.01.21 ![]() |
Базата е Server version: 8.0.22 - MySQL Community Server - GPL
Въйййй колко съм зле. thrawn благодаря много ..... понеже точно това ми е бил проблема. Но просто не го забелязвам ..... а било толкова очевадно. image_file_name на полето а в кодът се опитвам да дотъпвам file_name .... но просто не съм го забелязал, че е променено. Няма как да се научиш докато и някой понякога не помогне. Благодаря много. Определено бързо се отзовахте да ударите едно рамо. |
![]() |
![]() ![]() ![]() |