2017-04-06 36 views
0

在HTML一些选项在PHP中:如何隐藏从MySQL

$query ="SELECT rent FROM mydatabase WHERE rent= '$rent'"; 
    $rs=mysqli_query($connect,$query); 
    if(!$rs) 
    {echo "<script type ='text/javascript'>alert('Cannot connect to database')</script>"; 
    } 
    else 
    { if(mysqli_num_rows($rs) != 0) 
    {die("<script type ='text/javascript'>alert('The selected room are not available')</script>");} 
    } 
    $sql = "INSERT INTO mydatabase(title,first_name,last_name,dob,email,id,password,rent) VALUES('$title','$first_name','$last_name','$dob','$email','$id','$password','$rent')"; 
    mysqli_query($connect,$sql); 
    $_SESSION['first_name'] = $first_name; 
    $_SESSION['rent'] = $rent; 
    header("location: database.php"); 

在HTML:

<select name = "rent"> 
<option></option> 
<option name= "rent" value="A1">A1</option>> 
<option name= "rent" value="A10">A10</option> 
<option name= "rent" value="A3">A3</option> 
<option name= "rent" value="A4">A4</option> 
<option name= "rent" value="A5">A5</option> 
<option name= "rent" value="A15">A15</option> 
<option name= "rent" value="A20">A20</option> 
<option name= "rent" value="A8">A8</option> 
<option name= "rent" value="A6">A6</option> 
<option name= "rent" value="A12">A12</option> 
</select> 

在这里,我要为租值是唯一的。例如,如果客户再次选择租赁价值'A1',他不能选择相同的价值。问题是我还想为客户设置不想选择任何选项并将其数据存储在数据库中的空白选项。但空白选项()不能输入两次。那么,我可以用什么办法来克服这一点。 PS。我完全是业余的,我的英语不太好。谢谢你:)

+0

这是一个单页的应用程序? – funcoding

+0

您是否已将此选项存储在不同的表中的数据库中? –

+0

**警告**:使用'mysqli'时,您应该使用[参数化查询](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和['bind_param']( http://php.net/manual/en/mysqli-stmt.bind-param.php)将用户数据添加到您的查询中。 **不要**使用字符串插值或连接来完成此操作,因为您创建了严重的[SQL注入漏洞](http://bobby-tables.com/)。 **不要**将'$ _POST','$ _GET'或**任何**用户数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。 – tadman

回答

0

我认为你的问题的最佳解决方案是你需要从你的数据库中动态地创建你的选择,我的意思是从你的数据库中获得用户没有或已经采取的租金。

即在用户加载选择从数据库填充数据的页面之后不会像静态那样。为此,您可以创建另一个表格,或者只是简单地添加一个字段来确定租金,我称为“IsTaken”,返回1表示是,或者返回0表示未采用。

用户拿了那么从0到1就意味着它采取由用户或删除后,你可以从1到0

为您或您的用户将每个新记录更新更新“IsTaken”后,添加一个查询来更新该字段。也用于删除每条记录。

for the update: 
    update table t1 set rname = 1 where 'your condition to update only this record' 

for the delete: 
    delete from t1 where 'your condition to delete only this record' 

请看我的解决方案,让我知道你的问题是否解决。 以下代码仅显示选择查询。

看到这个:

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "stackoverflow"; 

$conn = new mysqli($servername, $username, $password, $dbname); 
//SELECT those record that not taken, be default i set that field to 0 
$sql = "SELECT rname FROM t1 where istaken = 0"; 
$result = mysqli_query($conn,$sql); 

?> 
<form action= "" method= "post"> 
<select name = "rent"> 
<?php 
if ($result->num_rows > 0) { 
//fill options with data returns from our query.. 
    while($row = $result->fetch_assoc()) { 
     echo "<option name=".$row['rname'].">" . $row['rname'] . "</option>"; 
    } 
} else { 
//if there is no record... 
    echo "<option name='None'>None</option>"; 
} 
?> 
</select> 
</form> 

<?php 
$conn->close(); 
?> 
. 
. 
. 

我很抱歉,如果我有任何语法或拼写错误,希望你明白我在这里做了。