2010-04-24 4 views
3

Comment est-ce que je pourrais simplifier cette instruction de mise à jour? Chaque fois qu'un client achète un article, il mettra à jour les ventes avec 1.comment simplifier cette requête de mise à jour de base de données (php)

$this->db->query('SELECT amount FROM shop_items WHERE itemid='.$itemid.''); 
$new_amount = $item->amount+1; 
    if(!$this->db->query('UPDATE shop_items SET amount='.$new_amount.' WHERE itemid='.$itemid.'')): 
    return false; 
    endif; 

Je ne peux pas le rendre plus simple, donc il y a moins de lignes, par exemple:

if(!$this->db->query('UPDATE shop_items SET amount=_current_value_+1 WHERE itemid='.$itemid.'')): 
return false; 
endif; 

est-ce possible? sinon merci quand même

Répondre

6

Qu'en est-il en utilisant la requête SQL suivante:

update shop_items 
set amount = amount + 1 
where itemid = 123 

Fondamentalement, dans une seule requête SQL, vous définissez la amount à la valeur précédente, il avait, plus un.
Pas besoin de deux requêtes ;-)


L'intégration dans votre code PHP devrait vous donner quelque chose qui ressemble à ceci:

if (!$this->db->query('UPDATE shop_items SET amount=amount+1 WHERE itemid='.$itemid.'')) : 
    return false; 
endif; 

Note: Je viens de remplacer votre _current_value_ par le nom du domaine sur lequel vous travaillez: amount.

+0

super merci: D Je savais qu'il devait y avoir un moyen plus simple. – Christophe

+0

De rien :-) Amusez-vous! –

Questions connexes