2017-10-04 12 views
0

J'ai un extrait de code php mentionné ci-dessousLiez les valeurs sélectionnées à la case à cocher en php

<?php $query = "SELECT * FROM Qualification"; 
    $result = mysqli_query($dbcon,$query); 
    while($row=mysqli_fetch_array($result)){ 
    ?> 
<input type='checkbox' value='"<?php $row['Id'] ?> "' name='Qualification[]' /><?php $row['Description'] ?><br> 

<?php } ?> 

Ce code ci-dessus est utilisé pour afficher toutes les qualifications des bases de données.

sortie sera

[] Teacher 
[] Engineer 
[] Doctor 
[] Banker etc.. 

disent Maintenant, j'ai vérifié 3 cases à cocher Enseignant, ingénieur, docteur.

foreach($_POST['Qualification'] as $Qualification) 
     { 
      $AllQualification .=$Qualification.","; 
     } 

$AllQualification ="1,2,3," 

donc je suis concaténer l'ID des valeurs dans une chaîne et le stocker dans la base de données comme 1,2,3,

Maintenant je dois lier les données à nouveau à cette case à cocher . Lorsque je reçois la qualification sélectionnée, il donne 1,2,3,

maintenant Comment lier les valeurs sélectionnées à la case à cocher.

La sortie dont j'ai besoin est enseignant, ingénieur, médecin doit être vérifié et banquier doit être retiré.

Toute aide appréciée.

+0

-vous besoin de les concaténer comme une chaîne? Un tableau ne fonctionne-t-il pas? – apokryfos

+0

oui j'ai besoin de concaténer et de le stocker sous forme de chaîne. Je le stocke dans la base de données –

+0

Je recommanderais l'implosion du tableau, et le filtrage des mauvaises valeurs aussi. Plus sûr et vous débarrasser de la dernière virgule (http://sandbox.onlinephpfunctions.com/code/dadd320e6ba72ea705b756cce5b41955cc9ab2a3). Vous pouvez également consulter le type de données MySQL SET, car il peut s'agir d'une meilleure solution et d'un support de requête pratique tel que FIND_IN_SET qui pourrait vous être utile plus tard (si vous voulez trouver tous les enseignants) – Lee

Répondre

0

Vous pouvez faire comme ce

exploser la chaîne à un tableau

$AllQualification ="1,2,3,"; 

$selected = explode(",", $AllQualification); 
$selected = array_filter($selected); 
//print_r($selected); 

utilisant in_array vous pouvez vérifier si elle est cochée

<?php $query = "SELECT * FROM Qualification"; 
$result = mysqli_query($dbcon,$query); 
while($row=mysqli_fetch_array($result)){ 
    ?> 
<input type='checkbox' value='"<?php $row['Id'] ?> "' name='Qualification[]' 
    <?php if (in_array($row['Id'], $selected)){ echo "checked" } ?> /><?php $row['Description'] ?><br> 

     <?php } ?> 

vérifier ce lien http://sandbox.onlinephpfunctions.com/code/ae6bbfc6bd0ad84ddceadeac608fa6747de41274