sql >> Databáze >  >> RDS >> Mysql

PHP:Jak zvýšit hodnotu v řádku tabulky za účelem počítání zobrazení a omezení počtu na jednu IP adresu

DUPLICATE KEY UPDATE

se používá s INSERT a ne pomocí UPDATE prohlášení DOCS

počet pro jednu IP bude takto

SELECT COUNT(*) FROM profiles WHERE IP = "127.1.0.0";

[Pokud nehledáte to, co jsem napsal výše]

pokud je IP adresa vaším primárním klíčem, pak

INSERT INTO 
profiles (ip,views) 
VALUES ("127.1.0.0",1)
ON DUPLICATE KEY 
UPDATE views=views+1;

Pokud chcete, aby váš kód fungoval správně [nepoužívejte mysql_*, také unikněte uživatelskému vstupu]

<?php
require_once 'db_conx.php';
$result = mysql_query( "SELECT * FROM profiles WHERE pid =2")  or die (mysql_error());
  /*ON DUPLICATE KEY UPDATE mviews = mviews+ 1 */               
if(mysql_num_rows($result) == 0){
     mysql_query( "INSERT INTO profiles (views) value(1) ")  or die (mysql_error());
    }else {
             mysql_query( "UPDATE profiles SET mviews = mviews +1 WHERE pid = '2' ")  or die (mysql_error());
      }
mysql_close($con);
?> 


  1. Klauzule MySQL Multiple Where

  2. Pochopení problému s nečistým čtením se serverem SQL

  3. Konfigurace PostgreSQL pro pozorovatelnost

  4. SQL:Jaké je výchozí pořadí dotazů?