0

I have a database and I have 3 different values that I want to count, to say that You have x amount of tickets open. I am created an array

$array = array(
    'Pending', 'Waiting on parts', 'Waiting for customer response'
);

and a query string

$result = mysql_query("SELECT COUNT(*) FROM computerdb WHERE email = '$id' AND FIND_IN_SET($array,'status' );"); list ( $count ) = mysql_fetch_row ( $result ); echo $count

for some reason it will not count it just errors out...

Error 1:
Warning: in_array() [function.in-array]: Wrong datatype for second argument in
Error 2:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource

Any ideas?

2
Contributors
3
Replies
28
Views
3 Years
Discussion Span
Last Post by diafol
0
SELECT field1, COUNT(field1) FROM table WHERE field2 = somevalue GROUP BY(field1)

will give you UP TO 3 records in your example

Edited by diafol

0

all it is doing is saying: 'You have Completed tickets open.', I dont want it to say completed, it needs to day you have x (x = 1 - infinity) tickets open and only for their id excluding completed...

0

Your status field should be numerical not textual, i.e. a foreign key from a 'status' table , e.g.

1 = Pending
2 = Waiting on parts

etc..

text searches are not only slow but they are prone to errors.
If your status categories will never be more than 32 in number, you could use bitwise operators for searches, such as...

Pending: 1
Waiting on parts: 2
Waiting for customer response: 4
Something else: 8
Something else again: 16
(etc)

So your custom search if you wanted Pending, Waiting on parts or Waiting for customer response would be...

$filter = 8;
$query = "SELECT... WHERE $filter & status > 0"; 

But that's something else

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.