Position actuelle: Accueil> Derniers articles> Comment convertir un formulaire de case en un numéro binaire pour le stockage à l'aide de lising ()?

Comment convertir un formulaire de case en un numéro binaire pour le stockage à l'aide de lising ()?

M66 2025-06-11

Lorsque vous travaillez avec des formulaires avec plusieurs options de case à cocher, un défi commun est de savoir comment stocker efficacement les choix d'utilisateurs. La manière traditionnelle consiste à utiliser des tableaux ou des chaînes séparées par des virgules, mais ces méthodes ne sont souvent pas suffisamment efficaces lors de l'interrogation et du stockage. Cet article expliquera comment utiliser la fonction Bindec () de PHP pour convertir le résultat de sélection d'une case à cocher en un numéro binaire pour le stockage, simplifiant ainsi la gestion des données.

Exemples de scénarios d'utilisation

Supposons que vous ayez un formulaire qui permet aux utilisateurs de sélectionner la catégorie de contenu qui les intéresse, par exemple:

  • Technologie (la valeur est 1)

  • Les sports (la valeur est 2)

  • Musique (la valeur est 3)

  • Jeu (la valeur est 4)

  • Film (la valeur est 5)

Le code de formulaire HTML est le suivant:

 <form method="post" action="https://m66.net/submit.php">
  <input type="checkbox" name="interests[]" value="0"> science et technologie<br>
  <input type="checkbox" name="interests[]" value="1"> éducation physique<br>
  <input type="checkbox" name="interests[]" value="2"> musique<br>
  <input type="checkbox" name="interests[]" value="3"> jeu<br>
  <input type="checkbox" name="interests[]" value="4"> Film<br>
  <input type="submit" value="soumettre">
</form>

La valeur de chaque case ici correspond à sa position dans le binaire binaire.

Logique de traitement du backend

Une fois le formulaire soumis, notre objectif est de convertir la case sélectionnée par l'utilisateur en un entier décimal et de le stocker dans la base de données. L'avantage de cela est qu'il a une requête rapide et économise un espace de stockage.

Par exemple, si l'utilisateur vérifie la "technologie" et la "musique", c'est-à-dire les 0ème et 2e bits, la chaîne binaire obtenue est 10100 (en regardant du haut au bit bas) et se convertit en décimal en 20 .

Exemple de code PHP:

 <?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $interests = isset($_POST['interests']) ? $_POST['interests'] : [];
    
    // Initialiser un tableau binaire
    $bits = array_fill(0, 5, '0');

    foreach ($interests as $index) {
        if (is_numeric($index) && $index >= 0 && $index < 5) {
            $bits[(int)$index] = '1';
        }
    }

    // Inversez le tableau de bits(Haut de gamme),et convertir en chaîne binaire
    $binary_string = implode('', array_reverse($bits));

    // utiliser bindec() Convertir en décimal entier
    $interest_value = bindec($binary_string);

    // Résultats de sortie ou enregistrer dans la base de données
    echo "Corde binaire: $binary_string<br>";
    echo "Valeurs stockées décimales: $interest_value<br>";

    // La logique stockée dans la base de données peut être étendue par elle-même
}
?>

Stockage et lecture

Dans la base de données, il vous suffit de créer un champ de type entier, tel que int (11) pour enregistrer cette valeur. Lorsque vous avez besoin de lire les intérêts des utilisateurs, vous n'avez qu'à utiliser la fonction de decbin () de PHP pour le convertir en une chaîne binaire et analyser les éléments sélectionnés par l'utilisateur via la chaîne.

 <?php
$stored_value = 20; // Exemples de valeurs
$binary = str_pad(decbin($stored_value), 5, '0', STR_PAD_LEFT);
$binary_array = array_reverse(str_split($binary));

foreach ($binary_array as $index => $bit) {
    if ($bit === '1') {
        echo "L&#39;utilisateur a sélectionné le numéro comme $index Options<br>";
    }
}
?>

Résumer

Avec Bindec () et decbin () , nous pouvons compresser efficacement les résultats de sélection de plusieurs cases à cocher dans un entier pour le stockage. Cette méthode réduit non seulement la complexité de la base de données, mais accélère également l'interrogation, ce qui convient particulièrement aux scénarios d'application qui nécessitent une lecture et un filtrage fréquents des préférences des utilisateurs. Si vous vous inquiétez de la façon de gérer les sélections de cases à cocher, essayez cette méthode.