增加印刷价值

时间:2018-10-29 07:56:01

标签: php html

我写了这段代码,我想增加打印值,但下一个值要增加一个。例如,当程序选择“AnılEfeÇoban”值时,应将其值增加“AnılEfeÇoban”的值。但这增加了下一个兰特的价值。我找不到错误,问题出在哪里?我在等你的答案。

$deger = 0;
echo "<div align= 'center'>";
echo "<h2> Birini Seçmek Zorundasın </h2>";
echo "</div>";
$kisiler= Array("Anıl Efe Çoban", "Mert Yüksel", "Emre Çelik", "Eren 
Şimşek", "Yiğit Gölebatmaz");
$kisiler_rand= $kisiler[array_rand($kisiler)]; # random chosing
$kisiler_randd= $kisiler_rand;
echo "<div id= 'karsilastirma1'>";
echo "</div>";
echo "<br>";
echo "<div align= 'center'>";
echo $kisiler_randd;
echo "<form method= 'POST'>";
echo "<br>";
echo "<input type= 'submit' name= 'cekici' value= 'Çekici'>". " ";
echo "<input type= 'submit' name= 'zeki' value= 'Zeki'>". " ";
echo "<input type= 'submit' name= 'dedikoducu' value= 'Dedikoducu'>". " ";
echo "<input type= 'submit' name= 'neseli' value= 'Neşeli'>". " ";


if($kisiler_randd== "Anıl Efe Çoban"){ # What is the randd
        if(isset($_POST['cekici'])){
            $sql= "SELECT * FROM benalmash WHERE isim= 'Anil_cekicilik';"; 
            $result= mysqli_query($baglan, $sql);
            $resultCheck= mysqli_num_rows($result);
            if($resultCheck > 0){
                $row= mysqli_fetch_assoc($result);
                $deger= $row["deger"];
                $deger++;
                $sqll= "UPDATE benalmash SET deger= $deger WHERE isim= 
     'Anil_cekicilik';";
                $istek= mysqli_query($baglan, $sqll);
        }
    }
}


    if($kisiler_randd== "Emre Çelik"){
       if(isset($_POST['cekici'])){
        $sql= "SELECT * FROM benalmash WHERE isim= 'Emre_cekicilik';"; 
        $result= mysqli_query($baglan, $sql);
        $resultCheck= mysqli_num_rows($result);
        if($resultCheck > 0){
        $row= mysqli_fetch_assoc($result);
        $deger= $row["deger"];
        $deger++;
        $sqll= "UPDATE benalmash SET deger= $deger WHERE isim= 
      'Emre_cekicilik';";
        $istek= mysqli_query($baglan, $sqll);
        }
    }
}


if($kisiler_randd== "Eren Şimşek"){
    if(isset($_POST['cekici'])){
        $sql= "SELECT * FROM benalmash WHERE isim= 'Eren_cekicilik';"; 
        $result= mysqli_query($baglan, $sql);
        $resultCheck= mysqli_num_rows($result);
        if($resultCheck > 0){
            $row= mysqli_fetch_assoc($result);
            $deger= $row["deger"];
            $deger++;
            $sqll= "UPDATE benalmash SET deger= $deger WHERE isim= 
    'Eren_cekicilik';";
            $istek= mysqli_query($baglan, $sqll);
        }
    }
}


if($kisiler_randd== "Yiğit Gölebatmaz"){
    if(isset($_POST['cekici'])){
        $sql= "SELECT * FROM benalmash WHERE isim= 'Yigit_cekicilik';"; 
        $result= mysqli_query($baglan, $sql);
        $resultCheck= mysqli_num_rows($result);
        if($resultCheck > 0){
            $row= mysqli_fetch_assoc($result);
            $deger= $row["deger"];
            $deger++;
            $sqll= "UPDATE benalmash SET deger= $deger WHERE isim= 
     'Yigit_cekicilik';";
            $istek= mysqli_query($baglan, $sqll);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

如果不先获取就增加值,可能会更容易,更快。

UPDATE `benalmash` SET `deger` = `deger` + 1 WHERE `isim` = 'Emre_cekicilik';

但是您的问题是,提交表单时,它将生成一个新的随机值。因此,将最初的一个放在隐藏的表单字段中,以便以后在查询中可以引用它。

出于完整性考虑,下面是一个可能有效的示例(未经测试):

<?php
$names = ["Anıl Efe Çoban", "Mert Yüksel", "Emre Çelik", "Eren Şimşek", "Yiğit Gölebatmaz"];
$random_id = array_rand($names);
$random_name = $names[$random_id];

if (isset($_POST['increment']) && isset($_POST['random_name'])) {
    // you should probably have another column with the complete name...
    $first_name = strtok($_POST['random_name'], ' '); // get first name
    // query should happen with PDO to prevent sql injections. do not put this into production!
    mysqli_query("UPDATE `benalmash` SET `deger` = `deger` + 1 WHERE `isim` = '" . $first_name . "_cekicilik';");
}
?>
<form id="myform" action="" method="post">
    <!-- add random name as hidden field -->
    <input type="hidden" name="random_name" value="<?php echo $random_name; ?>">
    <input type="submit" name="increment" value="increment <?php echo $random_name; ?> by one">
</form>

<script type="text/javascript">
    $('#myform').on('submit', function(e) {
        e.preventDefault();
        $form = $(this);
        $.post($form.attr('action'), $form.serialize(), function() {
            var name = $form.find('input[name='random_name']').val();
            alert('increased ' + name + ' by one');
        });
    });
</script>