Vinay Sharma
Vinay Sharma

Reputation: 360

MySQL count giving different result everytime

I am using a MySQL query to calculate the number of records based an certain where conditions. But each time the website/database is used by multiple users from multiple systems. The count result varies dramatically.

I have tried to find a lot but could not figure the issue. I am attaching the screen-shots. Please help!

Here's the screenshot: https://drive.google.com/file/d/0B4kI3aImsSLmaGN3cXo1Rk1saDg/view?usp=sharing

Structure of table:

CREATE TABLE IF NOT EXISTS `rap_partmpuser` (
  `par_tmp_track` int(11) NOT NULL,
  `par_tmp_exam` int(11) NOT NULL,
  `par_tmp_user` int(11) NOT NULL,
  `par_tmp_status` varchar(100) NOT NULL,
  `par_tmp_sdate` date NOT NULL,
  `par_tmp_edate` date NOT NULL,
  `par_tmp_adate` date NOT NULL,
  `par_tmp_tdate` date NOT NULL,
  `par_terdate` date NOT NULL,
  `par_tmp_score` int(11) NOT NULL,
  `par_tmp_tques` int(11) NOT NULL,
  `par_tmp_uopt1` varchar(250) NOT NULL,
  `par_tmp_uopt2` varchar(250) NOT NULL,
  `par_tmp_uopt3` varchar(250) NOT NULL,
  `par_tmp_uopt4` varchar(250) NOT NULL,
  `par_tmp_uopt5` varchar(250) NOT NULL,
  `par_tmp_uopt6` varchar(250) NOT NULL,
  `par_tmp_uopt7` varchar(250) NOT NULL,
  `par_tmp_uopt8` varchar(250) NOT NULL,
  `par_tmp_uopt9` varchar(250) NOT NULL,
  `par_tmp_uopt10` varchar(250) NOT NULL,
  `par_tmp_uopt11` varchar(250) NOT NULL,
  `par_tmp_uopt12` varchar(250) NOT NULL,
  `par_tmp_uopt13` varchar(250) NOT NULL,
  `par_tmp_uopt14` varchar(250) NOT NULL,
  `par_tmp_uopt15` varchar(250) NOT NULL,
  `par_tmp_filter` int(11) NOT NULL,
  `par_tmp_sfilter` int(11) NOT NULL,
  `par_tmp_cpyid` int(11) NOT NULL,
  `par_tmp_usrid` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

And my query is

SELECT count(*)
  FROM `rap_partmpuser`
 where par_tmp_cpyid='10106' and par_tmp_track='458'
   and par_tmp_usrid='771' and par_tmp_status='Active' 

Sometimes it gives me the result 46, sometimes 26, sometimes 70. The correct result is 70. Why is it different sometimes?

Upvotes: 1

Views: 216

Answers (2)

gr3g
gr3g

Reputation: 2914

$reponse = $bdd->prepare('
SELECT count(*)
  FROM rap_partmpuser 
 where par_tmp_cpyid=10106 and par_tmp_track=458
   and par_tmp_usrid=771 and par_tmp_status=\'Active\'');              

$reponse->execute(); 
$donnees = $reponse->fetch();

echo $donnees[0] ;

Upvotes: 0

user3784251
user3784251

Reputation: 520

I think the answer is simple. I'm not sure that this is the only mistake.

SELECT count(*) FROM rap_partmpuser where par_tmp_cpyid=10106 and par_tmp_track=458 and par_tmp_usrid=771 and par_tmp_status='Active';

Don't use 'single quotes' to check integer values like par_tmp_cpyid='10106'.Try above query if you get correct answer comment below.

Upvotes: 1

Related Questions