Резултаат от редове

C++ JAVA
kini
Нов
Нов
Posts: 149
Joined: Sat May 01, 2010 10:36 am

Резултаат от редове

Post by kini » Tue Jun 04, 2019 3:15 pm

Здравейте,

Пиша относно нещо, което не знам дали е възможно да се направи. Доста търсих и пробвах различни примери, но уви..

Ситуацията е следната..

В таблица имам 15 колони за 15 изображения. (poster, poster2, poster3 до 15). Искам да направя COUNT, който да покаже в кои от полетата на даденото id има вкарани резултати.
Например ако има вкарани изображения и в 13 колони от 15-те, да извежда `13 изображения` - просто да показва цифрата, като общ резултат.

Моля за информация или решение. :?:

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3200
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 124

Re: Резултаат от редове

Post by dakata__92 » Tue Jun 04, 2019 3:59 pm

kini wrote:Здравейте,

Пиша относно нещо, което не знам дали е възможно да се направи. Доста търсих и пробвах различни примери, но уви..

Ситуацията е следната..

В таблица имам 15 колони за 15 изображения. (poster, poster2, poster3 до 15). Искам да направя COUNT, който да покаже в кои от полетата на даденото id има вкарани резултати.
Например ако има вкарани изображения и в 13 колони от 15-те, да извежда `13 изображения` - просто да показва цифрата, като общ резултат.

Моля за информация или решение. :?:
Дай си структурата на таблицата, за да мога да ти напиша кода според нея.

kini
Нов
Нов
Posts: 149
Joined: Sat May 01, 2010 10:36 am

Re: Резултаат от редове

Post by kini » Tue Jun 04, 2019 4:08 pm

dakata__92 wrote:
kini wrote:Здравейте,

Пиша относно нещо, което не знам дали е възможно да се направи. Доста търсих и пробвах различни примери, но уви..

Ситуацията е следната..

В таблица имам 15 колони за 15 изображения. (poster, poster2, poster3 до 15). Искам да направя COUNT, който да покаже в кои от полетата на даденото id има вкарани резултати.
Например ако има вкарани изображения и в 13 колони от 15-те, да извежда `13 изображения` - просто да показва цифрата, като общ резултат.

Моля за информация или решение. :?:
Дай си структурата на таблицата, за да мога да ти напиша кода според нея.

Заповядай.

Code: Select all

CREATE TABLE `media` (
  `id` int(11) NOT NULL,
  `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `description` text COLLATE utf8_unicode_ci NOT NULL,
  `poster` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster2` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster3` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster4` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster5` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster6` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster7` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster8` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster9` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster10` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster11` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster12` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster13` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster14` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `poster15` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3200
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 124

Post by dakata__92 » Tue Jun 04, 2019 4:33 pm

[sql]SELECT sum((poster1 IS NOT NULL) +
(poster2 IS NOT NULL) +
(poster3 IS NOT NULL) +
(poster4 IS NOT NULL) +
(poster5 IS NOT NULL) +
(poster6 IS NOT NULL) +
(poster7 IS NOT NULL) +
(poster8 IS NOT NULL) +
(poster9 IS NOT NULL) +
(poster10 IS NOT NULL) +
(poster11 IS NOT NULL) +
(poster12 IS NOT NULL) +
(poster13 IS NOT NULL) +
(poster14 IS NOT NULL) +
(poster15 IS NOT NULL) +
) AS total
FROM media
WHERE id = $id;[/sql]

Това ти е заявката, с която ще изведеш тоталният брой на не празните колони за ред с идентификатор примерно 1. Ако имаш и PHP код, дай го за да ти помогнем ако не успееш.

kini
Нов
Нов
Posts: 149
Joined: Sat May 01, 2010 10:36 am

Post by kini » Tue Jun 04, 2019 4:41 pm

dakata__92 wrote:[sql]SELECT sum((poster1 IS NOT NULL) +
(poster2 IS NOT NULL) +
(poster3 IS NOT NULL) +
(poster4 IS NOT NULL) +
(poster5 IS NOT NULL) +
(poster6 IS NOT NULL) +
(poster7 IS NOT NULL) +
(poster8 IS NOT NULL) +
(poster9 IS NOT NULL) +
(poster10 IS NOT NULL) +
(poster11 IS NOT NULL) +
(poster12 IS NOT NULL) +
(poster13 IS NOT NULL) +
(poster14 IS NOT NULL) +
(poster15 IS NOT NULL) +
) AS total
FROM media
WHERE id = $id;[/sql]

Това ти е заявката, с която ще изведеш тоталният брой на не празните колони за ред с идентификатор примерно 1. Ако имаш и PHP код, дай го за да ти помогнем ако не успееш.
Благодаря!

Това е начина, по който се опитвам да извадя резултата в момента, но не се получава

Code: Select all

$placeid = $_GET['id'];

$result=mysql_query("SELECT sum((poster IS NOT NULL) +
           (poster2 IS NOT NULL) +
           (poster3 IS NOT NULL) +
           (poster4 IS NOT NULL) +
           (poster5 IS NOT NULL) +
           (poster6 IS NOT NULL) +
           (poster7 IS NOT NULL) +
           (poster8 IS NOT NULL) +
           (poster9 IS NOT NULL) +
           (poster10 IS NOT NULL) +
           (poster11 IS NOT NULL) +
           (poster12 IS NOT NULL) +
           (poster13 IS NOT NULL) +
           (poster14 IS NOT NULL) +
           (poster15 IS NOT NULL) +
          ) AS total
FROM media
WHERE id = '$placeid'");
$data=mysql_fetch_assoc($result);
echo $data['total'];

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3200
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 124

Post by dakata__92 » Tue Jun 04, 2019 5:10 pm

Дай ми var_dump на $data!

kini
Нов
Нов
Posts: 149
Joined: Sat May 01, 2010 10:36 am

Post by kini » Tue Jun 04, 2019 5:17 pm

dakata__92 wrote:Дай ми var_dump на $data!
Изписва NULL, като въведа var_dump($data); :?

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3200
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 124

Post by dakata__92 » Tue Jun 04, 2019 6:18 pm

[sql]
SELECT count(poster1) +
count(poster2) +
count(poster3) +
count(poster4) +
count(poster5) +
count(poster6) +
count(poster7) +
count(poster8) +
count(poster9) +
count(poster10) +
count(poster11) +
count(poster12) +
count(poster13) +
count(poster14) +
count(poster15)
FROM media
WHERE id = $id;
[/sql]

kini
Нов
Нов
Posts: 149
Joined: Sat May 01, 2010 10:36 am

Post by kini » Tue Jun 04, 2019 6:46 pm

dakata__92 wrote:[sql]
SELECT count(poster1) +
count(poster2) +
count(poster3) +
count(poster4) +
count(poster5) +
count(poster6) +
count(poster7) +
count(poster8) +
count(poster9) +
count(poster10) +
count(poster11) +
count(poster12) +
count(poster13) +
count(poster14) +
count(poster15)
FROM media
WHERE id = $id;
[/sql]
Все още нищо не се изобразява. Кофти ситуация :cry:

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3200
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 124

Post by dakata__92 » Tue Jun 04, 2019 7:12 pm

Щеее направим старомодно броене докато се сетя как се правеше с SQL :D
[php]
<?php

$placeid = $_GET['id'];

$result=mysql_query("SELECT poster1,
poster2,
poster3,
poster4,
poster5,
poster6,
poster7,
poster8,
poster9,
poster10,
poster11,
poster12,
poster13,
poster14,
poster15
FROM media
WHERE id = '$placeid'");
$data=mysql_fetch_assoc($result);
$count = 0;
foreach ($data as $val) {
if (!empty($val)) {
$count++;
}
}
print $count;
[/php]

Post Reply