bilcker
bilcker

Reputation: 1120

Checking checkboxes from database values

I post values from check boxes into a database for a user profile. When the user goes to edit his/her profile I want the checkboxes that they selected previously to be checked so they don't lose that info after updating their profile. I have tried many different solutions but with no luck.

The check box values get entered into table name members_teachers into a column called focus and are seperated by a comma for example art,mathematics,dance etc I am not sure how close or far I am away at accomplishing my goal but I greatly appreicate any help or suggestions you can provide. Thank you very much in advance

My code to try and check the values is

<?php
$focusQuery = mysql_query("SELECT focus FROM members_teachers WHERE id = $member_id") or die;

while ($new_row = mysql_fetch_assoc($focusQuery)){

$focusRow = $row['focus'];

$focusValue = explode(',', $focusRow);

foreach($focusValue as $newFocus){

//echo $newFocus;

//echo "<br/>";

$result = mysql_query("SELECT focus FROM members_teachers WHERE focus LIKE '%$focusRow%'") or die;

if(mysql_num_rows($result) > $newFocus){

$checked = 'checked="checked"';

}

else{

$checked = '';

}

}

}
?>

This is my html

<label for="art-focus">Art</label>
                        <input name="focus[]" type="checkbox" value="Art" <?php echo $checked ?>>

<label for="math-focus">Mathematics</label>
                            <input name="focus[]" type="checkbox" value="Mathematics" <?php echo $checked ?>>

<label for="dance-focus">Dance</label>
                            <input name="focus[]" type="checkbox" value="Dance" <?php echo $checked ?>>

Upvotes: 1

Views: 17767

Answers (3)

Govind Verma
Govind Verma

Reputation: 1

<?php  $hobby = $row['hobbies']; 
    $hobbies = explode (' ', $hobby);
?>
<input type="checkbox" name="hobbies[]" value="cricket"  <?php echo in_array('cricket', $hobbies?'checked':'') ?> >cricket
<input type="checkbox" name="hobbies[]" value="singing"  <?php  echo in_array('singing' , $hobbies ?'checked': '')  ; ?> >singing
<input type="checkbox" name="hobbies[]" value="football" <?php  echo in_array('football', $hobbies  ?'checked': '') ; ?> >footballl 

Upvotes: 0

mahendra
mahendra

Reputation: 133

<?php
// Create connection
$con=mysqli_connect("hostname","username","pass","dbname");

// Check connection
if (mysqli_connect_errno($con))
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
$result = mysqli_query($con,"SELECT focus FROM members_teachers WHERE id = $member_id"); 
while($row = mysqli_fetch_array($result))
  {
    $focus=explode(",",$row['focus']);

?>
<input type="checkbox" name="focus[]" value="Art" <?php if(in_array("Art",$focus)) { ?> checked="checked" <?php } ?> >
<input type="checkbox" name="focus[]" value="Mathematics" <?php if(in_array("Mathematics",$focus)) { ?> checked="checked" <?php } ?> >
<input type="checkbox" name="focus[]" value="Dance" <?php if(in_array("Dance",$focus)) { ?> checked="checked" <?php } ?> >
<?php
}
?>

Upvotes: 4

Sergiu Paraschiv
Sergiu Paraschiv

Reputation: 10153

<?php

 $focusedValues = array();

$focusQuery = mysql_query("SELECT focus FROM members_teachers WHERE id = $member_id") or die;

while ($row = mysql_fetch_assoc($focusQuery)){

    $focusedValues = explode(',', $row['focus']);
}
?>

<label for="art-focus">Art</label>
                        <input name="focus[]" type="checkbox" value="Art" <?php echo in_array('Art', $checked) ?>>

<label for="math-focus">Mathematics</label>
                            <input name="focus[]" type="checkbox" value="Mathematics" <?php echo in_array('Mathematics', $checked) ?>

<label for="dance-focus">Dance</label>
                            <input name="focus[]" type="checkbox" value="Dance" <?php echo in_array('Dance', $checked) ?>

I don't know why you were SELECTing for the second time, that's pointless, you already know what's checked because it's in $focusedValues. Also, in your code, $checked would be empty if nothing was checked and checked="checked" otherwise. You obviously need a variable for each input, no?

Upvotes: 0

Related Questions