如何增加一个整数并将其保存以备将来使用而无需数据库

时间:2014-01-09 05:34:51

标签: php int increment

我想从网页中获取一个整数,在提交表单时递增它,然后将旧的int替换为网页上相同位置的新int。更新的int应该对所有用户可见,而不仅仅是一台计算机。我正在使用PHP,似乎无法完成这个看似简单的任务。

由于我目前在连接数据库方面遇到问题,因此无法使用数据库。

这是我的代码,它是我为我的毕业班创作的一种无声拍卖。

<?php
$nameB = $priceB = $numbB = $emailB = false;

if($_SERVER["REQUEST_METHOD"] == "POST") {
    if(empty($_POST['name']))
        {$nameERR = "Name is required"; $nameB = true;}
    if(empty($_POST['price']))
        {$priceERR = "A bet amount is required"; $priceB = true;}
    if(empty($_POST['number']))
        {$numERR = "A bet amount is required"; $numbB = true;}
    if(empty($_POST['email']))
        {$emailERR = "A bet amount is required"; $emailB = true;}
}

if($_POST && $nameB == false && $priceB == false && $numbB == false && $emailB == false) {
    $name = $_POST['name'];
    $numb = $_POST['number'];
    $email = $_POST['email'];
    $betAmount = $_POST['price'];
}

$filename = 'counter.txt';
if(!file_exists($filename)) {
    $bids = 0;
}
else
    $bids = file_get_contents ($filename);
$bids++;
file_put_contents($filename, $bids);

function getBids() {
    if(!file_exists($filename)) {
        $bids = 0;
    }
    else
        $bids = file_get_contents ($filename);
}
?>

<html>
<body>
<form>
</form>
Number of Bids:
<br>
<?php echo getBids(); ?>
</html>

表单实际上有内容,但与问题无关。唯一相关的是提交按钮,它会发送一封确认电子邮件。当按下时,计数器应该增加1。

我希望我能够很好地解释这一点。

3 个答案:

答案 0 :(得分:1)

以这种方式尝试

session_start();
if (isset($_POST['SOME_THING'])) {
   if ( isset($_SESSION['int']) ) {
      $_SESSION['int'] = $_SESSION['int']+1;
   } else {
      $_SESSION['int'] = 1;
   }
}

将此代码添加到表单发布的位置

答案 1 :(得分:0)

您可以使用文件存储计数器,如下所示:

//after form submit
$filename='counter.txt';
if(!file_exists($filename)){
    $counter = 0 ;
}
else
    $counter = file_get_contents ($filename);
$counter++;
file_put_contents($filename, $counter); //save the new counter ( +1 )

并且每隔一段时间你想在任何地方使用这个数字,就这样得到它:

if(!file_exists($filename)){
        $counter = 0 ;
    }
else
        $counter = file_get_contents ($filename);

更新:您的getBids()函数必须返回如下值:

function getBids() {
    $filename='counter.txt'; // ADD THIS LINE
    if(!file_exists($filename)) {
        $bids = 0;
    }
    else
        $bids = file_get_contents ($filename);
    return $bids; //ADD THIS LINE
}

答案 2 :(得分:0)

请首先管理您与数据库的连接,以便成功回答您的问题。如果您已连接到数据库,请添加以下代码:

<?php
$conn; // connection link to your database
$query = mysqli_query($conn,"SELECT max(int) as int FROM tbl_table") or die("Error" . mysqli_error());
$row = mysqli_fetch_assoc($query);
$result = $row['int'] + 1;
echo $result;
?>

希望这会有所帮助。