2010-07-21 8 views
0

J'ai un problème qui me anoing. J'ai une table très simple (MyISAM) où j'ai un champ "count (INT) (11)"MySQL - incrémenter une valeur existante

C'est juste un compteur qui est incrémenté chaque fois qu'un produit/article est vu. Le problème est que la requête est incrémente 2 et non 1.

Ie. Actualfield valeur = 10

que je cours: mysql_query ("update table_test set count = compte + 1 où id = 1");

la valeur de comptage de champ va à 12 et non à 11.

Je pensais que mon script est Runnig 2x la requête, alors je l'ai fait un fichier propre avec ces lignes:


    $con = mysql_connect("localhot","user","pass"); 
    mysql_select_db("database"); 
    mysql_query("update table_test set count = count+1 where id = 1"); 

et rien de plus dans le fichier .. il ajoute encore 2 insted 1. mais si je copie cette requête et fonctionne en utilisant Phpmyadmin il fonctionne.

Pas de préférence idée de ce qui se passe?

Thanx très Kid considère Tarsis Florencio

Ceci est le code complet j'utilise:

 

include 'includes/constants.php'; //just db_user, db_pass and connection 
include 'includes/connect.php'; 

//here i select the actual count value 
$result = mysql_query("select count from pictures where id = 6909") or die (mysql_error()." - [select count from pictures where id = 6909]"); 
$row = mysql_fetch_array($result); 
$aux = (int)$row['viewed'] + 1; // increment 
mysql_query("UPDATE pictures SET viewed = {$aux} WHERE id = 6909"); 
 

j'ai aussi essayer:

 

mysql_query("UPDATE pictures SET viewed = viewed+1 WHERE id = 6909"); 
 

Si je lance le fichier en utilisant la requête comme ceci: images MISE A JOUR Affichées = 15 WHERE id = 6909

où je spécifie la valeur à mettre à jour, fonctionne.

+1

peuvent être demandes 2X envoient à partir de votre navigateur Web. Pouvez-vous partager vos codes relatifs? – Sadat

+0

En effet, la requête doit exécuter deux fois pour cela, probablement une erreur de codage logique ailleurs ou une demande « double » (vérifier les journaux d'accès pour lequel) – Wrikken

+0

C'est ce que je pensais, mais il est un fichier propre que même pas imprimer une sortie . Je viens d'appuyer sur F5 pour lancer la ligne ci-dessus. J'ai fait une mise à jour du code ci-dessus, donc .. c'est ce que je suis en train de faire. le fichier est placé sur ma racine folde. !?!? – Varois

Répondre

0

Si vous incluez la même requête dans phpMyAdmin et qu'elle fonctionne, ce n'est pas un problème avec votre requête. Pouvez-vous partager le code à partir duquel vous appelez la requête?

Questions connexes