从列表中隐藏已使用的类别php

时间:2019-04-17 08:11:34

标签: php mysql

我有一个将数据插入db表中的表格,要求我从select的选项中隐藏所有已使用的类别。

查询:

$insertSQL = sprintf(
    "INSERT INTO Cat_documenti (codice_cat_doc, titolo_cat_doc, desc_cat_doc, id_struttura) VALUES (%s, %s, %s, %s)",
    GetSQLValueString($_POST['cod_cat'], "text"),
    GetSQLValueString(inputControl(docUpdate(strtoupper($_POST['titolo_cat']))), "text"),
    GetSQLValueString(inputControl($_POST['desc_cat']), "text"),
    GetSQLValueString($id_az, "int")
);

//dwthai.com($database_riskmanagement, $riskmanagement);
$Result1 = mysqli_query($riskmanagement, $insertSQL) or die(mysqli_error($riskmanagement));
$id_inserito = mysqli_insert_id();
createLog($_COOKIE['cod_operatore'], $insertSQL, $id_inserito);

如何在php中隐藏结果?

数据库中的值是:cod_cat

html:

<select name="cod_cat" id="cod_cat" class="form-control m-bot15" required>
    <option value="">Selezionare</option>
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
    <option value="D">D</option>
    <option value="E">E</option>
    <option value="F">F</option>
    <option value="G">G</option>
    <option value="H">H</option>
    <option value="I">I</option>
    <option value="J">J</option>
    <option value="K">K</option>
    <option value="L">L</option>
    <option value="M">M</option>
    <option value="N">N</option>
    <option value="O">O</option>
    <option value="P">P</option>
    <option value="Q">Q</option>
    <option value="R">R</option>
    <option value="S">S</option>
    <option value="T">T</option>
    <option value="U">U</option>
    <option value="V">V</option>
    <option value="W">W</option>
    <option value="X">X</option>
    <option value="Y">Y</option>
    <option value="Z">Z</option>
</select>

我知道一种实现它控制变量的可能性,但是我不知道隐藏值

示例:

$CONTROLLA = mysqli_query($VARIABLE_OF_MY_CONNECTION,"SELECT VALUE FROM TABLE WHERE CONDITION");
$SE_IL_RISULTATO_IMMESSO=mysqli_num_rows($CONTROLLA);

if($SE_IL_RISULTATO_IMMESSO==0)  {
    $connessione->query("INSERT INTO TABLE ……”);
    $POSITIVE_MESSAGE = ‘ECHO WHAT YOU WANT’;
}

2 个答案:

答案 0 :(得分:1)

我已经检查了您的问题。请检查以下代码并实现

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

$conn = mysqli_connect($servername, $username, $password, $dbname);
$sql = "SELECT category from categories group by category";
$result = mysqli_query($conn, $sql);



$selected = array();
while($row = mysqli_fetch_assoc($result)) {
    $selected[] = $row['category'];
}

echo '<select>';
foreach(range('A', 'Z') as $letter) {
    if(!in_array($letter, $selected)){
        echo '<option value="'.$letter.'">'.$letter.'</option>';
    }
}
echo '</select>';

答案 1 :(得分:0)

由于您无法使用PHP编辑现有的html代码,因此您可以使用PHP输出一些Javascript代码,从而删除已使用的选项,或者仅显示未使用的PHP选项。因此,您将执行以下操作:

<!-- Your HTML code -->

<?php
//Do your database query, if requested
?>

<!-- Build the select element: -->
<select name="cod_cat" id="cod_cat" class="form-control m-bot15" required>
    <option value="">Selezionare</option>

<?php
//Here you would display the available options like this:
echo "<option value="A">A</option>";
...

//The selected values will be in the variable $_POST['cod_cat']
//So, you need to iterate over all your values (A-Z) and remove the values in $_POST['cod_cat'] 
foreach(range('A', 'Z') as $letter) {
    if(!in_array($letter, $_POST['cod_cat'])){
        echo '<option value="'.$letter.'">'.$letter.'</option>';
    }
}
?>

</select>


<!-- Your HTML code -->