根据SQL查询结果显示/隐藏按钮

时间:2018-08-05 10:32:49

标签: php sql

您好,如果在这种情况下DeckID大于40的具有特定值id的行数,我想隐藏一个按钮。

到目前为止,我的代码如下:

var error_pass = false;

  $('#pass').focusout(function(){
        check_pass();
        error_pass = false;
        if(error_pass !== true){
            console.log('its showing!');
        }else{
            $('.test').fadeOut('522');
        }
    });


   function check_pass() {
        var fpass= $('#pass').val();
        switch(error_pass = true){
            case(fpass.length < 6 ? $('#pass-error-message3').css('color','red'):$('#pass-error-message3').css('color','green') ):
              $('#pass-error-message3').show();
            case(fpass.search(/(?=.[a-z])(?=.*[A-Z])/) == -1 ? $('#pass-error-message4').css('color','red') : $('#pass-error-message4').css('color','green')):
                $('#pass-error-message4').show();
            case(fpass.search(/\d/) == -1 ? $('#pass-error-message2').css('color','red'):$('#pass-error-message2').css('color','green')):
                $('#pass-error-message2').show();
            default:break;
        }
  }

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

在此解决方案中,我没有使用SQL注入。但是,如果您使用SQL注入,那就太好了。我刚刚提到了无需SQL注入的代码解决方案。

$sql3 = "SELECT COUNT(*) as count FROM movies";
$result3 = $link->query($sql3) or die(mysql_error());
$rows = mysqli_fetch_array($result3);
if($rows['count'] <= 40){
    echo "Deck is not full";
}else{
    echo"Deck is full <br><br>";
}

在上面的代码中,我在SQL中使用了别名(计数)。 mysqli_fetch_array($result3)以数组格式返回数据。因此,您必须检查数组Ex中的值。 $row['count']

答案 1 :(得分:0)

似乎您混淆了代码。 在这里,我给您一个完整的示例,以从connection开始直到表单。 (将过程SQL连接与mysqli一起使用)

$conn = mysqli_connect("127.0.0.1", "username", "password", "database_name");

$deck = mysqli_real_escape_string($deck);   //Prevent SQL Injection at somepoint by escaping string
$q = mysqli_query($conn, "SELECT * FROM cards WHERE DeckID = '{$desk}'"); //Select you table
$row = mysqli_fetch_array($q); //Fetch as array or you may use fetch_assoc and fetch_object as well.

if(count($row) <= 40){ //other than count, you may use mysqli_num_rows($q)
?> 
    <form action='includes/addtodeck.php' method='get'>
        <input type='hidden' name='un' value='<?php echo $row["id_unique"] ?>'>
        <button value='<?php echo $deck ?>' name='DID'>Add to deck</button>
    </form>
    <hr align='left' width='80%'>
<?php
}else{
    echo"Deck is full <br><br>";
}

就像其他人所说的那样,上面的代码在SQL注入中不是100%安全的,您可能希望使用数据绑定来获得最佳性能和安全性。

如您所见,我删除了COUNT(*),因为您想在表单中使用$row["id_unique"],因此必须选择全部/特定列而不是仅对其进行计数。