Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 256
  • Last Modified:

Get counts from mysql database

My table has following structure (along with few other columns)
product      a1    a2     a3   a4
abc            yes      no      yes      no
pqr            yes      yes      no      yes
xyz            yes      yes      yes      yes

I need to run a query which will return the total count of yes:
product      count
abc              2
pqr               3
xyz              4

How can i return the same using PHP mySQL.
0
nainil
Asked:
nainil
1 Solution
 
AriMcCommented:
I don't think that kind of query can be done with standard SQL but you could apply
the method and PHP-code described here:

http://www.dynamicdrive.com/forums/showthread.php?t=41946

0
 
fcontrepoisCommented:
sql is done to work on rows not on columns, so I'll say that this work is more for the php part.

this code is written as is directly in this textarea without testing so I probably forgot a ; or something else but the logic is good (I hope)

<?php

mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Could not connect: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT * FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$product=$row[0];
$yes=0;
for ($i=1; $i<count($row); $i++){
  if($row[$i]=="yes"){ $yes++;}
}  

printf("Product: %s  Yesses: %s", $product, $yes);  
}

mysql_free_result($result);

?>

0
 
Aaron TomoskySD-WAN SimplifiedCommented:
It can be done in SQL with a case statement and group by.
Here is the idea but I'm sure my syntax is a little off as I'm on my phone
Select product, sum(case when a1='yes'  then 1 else 0 end
+ case when a2 ='yes') as totalyes group by product
0
 
nainilAuthor Commented:
Thank you aarontomosky. It worked like a charm. Nice to learn something new :)
0
 
fcontrepoisCommented:
really case made it to mysql , I'll sleep being less stupid tonight
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now