【问题标题】:Visit counter with mysql/php使用 mysql/php 访问计数器
【发布时间】:2018-01-13 06:22:38
【问题描述】:

起初我是 php 和 MySQL 的初学者。现在我正在使用管理面板开发我的第一个更大的网站。我想用mysql和php做一个简单的访问计数器。我制作了这段代码,访问者 IP 保存在 $ip 中并插入数据库中。看起来很简单,但它不起作用 :D 我花了大约 2 个小时在上面,但我在我的代码中找不到错误。它没有向我显示数据库中的任何信息。

include 'connect_db.php';
$ip = $_SERVER['REMOTE_ADDR'];
$sql = mysql_query("SELECT * FROM table WHERE visits='$ip'");
if (!$ip == $sql) {
    $insert = mysql_query("INSERT INTO table (visits) VALUES '$ip'");
}

我的桌子上有 2 件物品。 1) 具有自动增量的 ID 和 2) 访问定义为 VARCHAR 50。 服务器连接正常,没有任何错误。

你能帮帮我吗?

【问题讨论】:

  • 节省您的学习时间 mysql_* API - 它已被弃用。切换到PDO
  • !$ip == $sql 看起来很奇怪。什么意思?

标签: php mysql counter


【解决方案1】:

谢谢,我发现了错误..其中一个是声明(谢谢ImatWar),另一个错误是在INSERT中的“VALUES”之后必须在()中......

但它不能正常工作。即使插入一次,它也会再次在数据库中插入 IP。 :l

修复代码:

$sql = mysql_query("SELECT * FROM visitcont WHERE visits='$ip'");
if ($ip !== $sql) {
$insert = mysql_query("INSERT INTO visitcount (visits) VALUES ('$ip')");

【讨论】:

  • visitcount 表只有 2 列 Id 和访问??
  • 是的,只有 2 列
【解决方案2】:

你必须使用 mysqli 或 PDO 而不是 mysql。但现在试试这个:

include 'connect_db.php';
$ip = $_SERVER['REMOTE_ADDR'];
$sql = mysql_query("SELECT * FROM table WHERE visits= $ip");
if (!empty($ip) && ($ip != $sql)) {
    $insert = mysql_query("INSERT INTO table (visits) VALUES $ip");
}else{
   echo "already inserted";
}

【讨论】:

  • 这仍然是错误的。 mysql_query() 返回一个资源。您无法将其与$ip != $sql 之类的字符串进行比较。
  • 什么都没发生:/
【解决方案3】:

请试试这个。 希望对你有帮助

include 'connect_db.php';
$ip = $_SERVER['REMOTE_ADDR']; 
if (isset($ip)){
  $sql = mysql_query("SELECT * FROM table WHERE visits = '$ip'");
  if(mysql_num_rows($sql)==0){
    $insert = mysql_query("INSERT INTO table (visits) VALUES ('$ip')");
 }
}

【讨论】:

  • 哦..它的工作原理!非常感谢(>^^)>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-12
  • 2017-09-02
  • 2012-04-11
  • 1970-01-01
  • 2013-07-19
  • 1970-01-01
相关资源
最近更新 更多