与PHP While循环混淆

与PHP While循环混淆,php,Php,我有以下输出: 12345: 1 1234: 7 1234: 7 1234: 6 1234: 4 它由一个以“?id=12345”结尾的URL生成。应该发生的是,当数据库中存在该id时,该id将递增1,或者当数据库中不存在该id时,将其添加。1234生成的最后一个结果是正确的,但是如何停止生成1234之前的结果呢 while ($row = $database->row()->fetch()) { $id = $row["id"]; $count = $row

我有以下输出:

12345: 1
1234: 7
1234: 7
1234: 6
1234: 4
它由一个以“?id=12345”结尾的URL生成。应该发生的是,当数据库中存在该id时,该id将递增1,或者当数据库中不存在该id时,将其添加。1234生成的最后一个结果是正确的,但是如何停止生成1234之前的结果呢

while ($row = $database->row()->fetch()) {
    $id    = $row["id"];
    $count = $row["count"];

    if ($id != $_GET["id"]) {
        $insert = new MySQLConnect();
        $insert->query("INSERT INTO links VALUES (:id, 1);");
        $insert->run(array("id" => $_GET["id"]);
    } elseif ($id == $_GET["id"]) {
        $update = new MySQLConnect();
        $update->query("UPDATE links SET count=count + 1 WHERE id=:id;");
        $update->run(array("id" => $_GET["id"]);
    }

}
编辑:

功能显示\u数据()
{
$display=new MySQLConnect();
$display->query(“从链接中选择*”;
$display->run();
而($row=$display->row()->fetch()){
$id=$row[“id”];
$count=$row[“count”];
$GLOBALS[“output”]。=$id.:“$count.”
“; } }
如果只想创建/更新作为参数发送的ID,则不需要“while”

$useId = (int)$_GET["id"];
$insert = new MySQLConnect();
$insert->query("INSERT INTO `links` (`id`, `count`) VALUES ('$useId', 1) ON DUPLICATE KEY UPDATE `count` = `count` + 1");
$insert->run();

只是一个旁注:如果我转到
?id='',会发生什么;删除表链接--?你知道while循环做什么吗?每小时和每小时的区别?在询问中避开你们的分歧。好了,伙计们,让我们回到话题上来。该网站目前正在开发中,我只是在玩弄逻辑,因为它只是PHP中的一个草图。请不要浪费你自己和读者的时间,因为他们必须通读一遍才能得到答案。我尝试了你的解决方案,但我一直在数据库中获得一个新条目,并且没有任何增量。我得到的输出是:12345:250 12345:144 12345:1您应该在id字段上创建一个主键
$useId = (int)$_GET["id"];
$insert = new MySQLConnect();
$insert->query("INSERT INTO `links` (`id`, `count`) VALUES ('$useId', 1) ON DUPLICATE KEY UPDATE `count` = `count` + 1");
$insert->run();