Counter problem

Counter problem

am 06.04.2006 11:30:56 von Duderino82

I wanted to ad a counter to records. So when the user views the details
of the record I punch in this php line:

$qry = mysql_query("SELECT * FROM $table WHERE code='$code'",$db);
$row=mysql_fetch_array($qry);
$row[view]++;
$str="UPDATE $table SET view='$row[view]' WHERE code=$code";
mysql_query($str,$db);

when I check $row[view] after the increment it actually cointains
$row[view]++. Even the SQL string is correct. Lets say $row[view] was
23 then $str is:

UPDATE $table SET view='24' WHERE code=$code

The problem is that in the database the value will be 25!!! 'view'
field is a basic INT (11) (no auto_increment). I tryed to put in the
same value I get (in che example 23) with the result that he doesn't
change the value (it remains 23). What is the problem? and I can I
solve it???

Re: Counter problem

am 06.04.2006 16:41:48 von Shion

Duderino82 wrote:
> I wanted to ad a counter to records. So when the user views the details
> of the record I punch in this php line:
>
> $qry = mysql_query("SELECT * FROM $table WHERE code='$code'",$db);
> $row=mysql_fetch_array($qry);
> $row[view]++;
> $str="UPDATE $table SET view='$row[view]' WHERE code=$code";
> mysql_query($str,$db);


> when I check $row[view] after the increment it actually cointains
> $row[view]++. Even the SQL string is correct. Lets say $row[view] was
> 23 then $str is:
>
> UPDATE $table SET view='24' WHERE code=$code

Try with

$str="UPDATE $table SET view=view+1 WHERE code=$code";


//Aho

Re: Counter problem

am 07.04.2006 09:42:10 von Duderino82

nope...same problem...is there any function besisde auot_increment that
adds 1 to a specific field?

Re: Counter problem

am 07.04.2006 16:12:57 von Shion

Duderino82 wrote:
> nope...same problem...is there any function besisde auot_increment that
> adds 1 to a specific field?
>

If you have problems with

$str="UPDATE $table SET view=view+1 WHERE code=$code";

then you have two possible problems

1. Your php script is run twice

2. your column view has auot_increment enabled


To fix 1, you have to ensure that the script is only loaded once, if you
include the file with the code that counts up the view column, then use
include_once() instead of include().
http://www.php.net/manual/en/function.include-once.php

To fix 2, you will need to use ALTER and remove the auot_increment for the
column view. http://dev.mysql.com/doc/refman/5.0/en/alter-table.html


//Aho