Reputation: 145
i have created a html form using php and sql. The form contains a field called spaces which is a select dropdown. The values are coming from an array which i declared in php. If the values in array are already present in database it should not display. So i have done the following code:
<select class="form-control" id="space" name="space">
<option value="--Select--">--Select--</option>
<?php
$select=mysqli_query($con,"select * from clients where Spaces IS NOT NULL");
while($menu1=mysqli_fetch_array($select))
{
$filled =$menu1['name'];
$valuez = array("C101","C102","C103","C104");
if ($filled != $valuez) {
?>
<option value="<?php echo $valuez;?>">
<?php echo $valuez;?>
</option>
<?php
}}
?>
</select>
but this is not making any values display. Can anyone please tell me what is wrong in my code. thanks n advance
Upvotes: 2
Views: 1778
Reputation: 946
Try this and please make sure the value you want to display as the options are from the column name or spaces. I used the name($menu1['name']) column as per your code.
<select class="form-control" id="space" name="space">
<option value="--Select--">--Select--</option>
<?php
$select = mysqli_query($con,"select * from clients where Spaces NOT IN ('C101','C102','C103','C104')");
while($menu1=mysqli_fetch_array($select)) {
$filled = $menu1['name'];
if (!empty($filled)) {
?>
<option value="<?php echo $filled;?>">
<?php echo $filled;?>
</option>
<?php
}}
?>
</select>
Upvotes: 1
Reputation: 13404
Your $filled
is string, cannot equals to array.
And you can just use whereIn
, don't need to take all clients out:
<select class="form-control" id="space" name="space">
<option value="--Select--">--Select--</option>
<?php
$valuez = "'C101','C102','C103','C104'";
$select = mysqli_query($con, "SELECT * FROM clients WHERE Space IN ($valuez)");
?>
<?php while($menu1 = mysqli_fetch_array($select) ) : ?>
<option value="<?php echo $menu1['name'];?>">
<?php echo $menu1['name'];?>
</option>
<?php endwhile; ?>
</select>
Upvotes: 2
Reputation: 1795
you are comparing a string with the array. you should use in_array like this
<select class="form-control" id="space" name="space">
<option value="--Select--">--Select--</option>
<?php
$select=mysqli_query($con,"select * from clients where Space IS NOT NULL");
while($menu1=mysqli_fetch_array($select))
{
$filled =$menu1['Space'];
$valuez = array("C101","C102","C103","C104");
foreach($valuez as $value){
if($value != $filled){
?>
<option value="<?php echo $value;?>">
<?php echo $value;?>
</option>
<?php
}
}
}
?>
update the code
Upvotes: 1