如何在SQL查询中将var设置为null

时间:2018-08-15 07:55:46

标签: php sql

我正在从下拉列表中获取值,并在查询中使用该值。当我不选择任何值时,它不显示null或'',而是显示var =“。我该如何解决。我需要这样做,因为我在jquery中使用$('#select1').val() ? $('.select1td').show() : $('.select1td').hide();我需要这样做。这是我的代码:

<select id="select1" name="select1" style="width: 190px; display: block;"><option selected value="" disabled="disabled">Select an option</option><?php 
$sql="SELECT DISTINCT name FROM searchdate ";
        
$result = @mysql_query($sql);

while ($row = mysql_fetch_array($result)) {
    
    echo "<option  class='name' value=' " . $row['name'] ."'>" . $row['name'] ."</option>";
    }
?></select>
<?php
$count=1;
$conn=mysqli_connect("localhost","root","","table");
$select1=isset($_POST['select1']) ? trim($_POST['select1']):'';

echo $sql="SELECT name FROM table WHERE name='".$select1."' ";
$result = mysqli_query($conn,$sql);

当我在下拉菜单中未选择任何值时,查询将显示name =“

2 个答案:

答案 0 :(得分:0)

使用empty()函数代替isset()函数。它会检查变量是否已设置以及值是否为空。

$select1=!empty($_POST['select1']) ? trim($_POST['select1']):'';

将此语句的if条件设为:

    if($select1){
     $sql="SELECT name FROM table WHERE name='".$select1."' ";
    $result = mysqli_query($conn,$sql);
    }else{
   echo "Please choose an option";
}

在javascript中:

if($('#select1').val()){
$('.select1td').show()
}else{
$('.select1td').hide()
}

答案 1 :(得分:0)

尝试一下:

<select id="select1" name="select1" style="width: 190px; display: block;"><option selected value="" disabled="disabled">Select an option</option><?php 
$sql="SELECT DISTINCT name FROM searchdate ";
        
$result = @mysql_query($sql);

while ($row = mysql_fetch_array($result)) {
    
    echo "<option  class='name' value=' " . $row['name'] ."'>" . $row['name'] ."</option>";
    }
?></select>
<?php
$count=1;
$conn=mysqli_connect("localhost","root","","table");
$select1 = trim($_POST['select1']);// you should trim first then check it with isset
$select1=isset($select1[0]) ? $select1:'NULL';

echo $sql="SELECT name FROM table WHERE name='".$select1."' ";
$result = mysqli_query($conn,$sql);