<?php
$collection= array('appels', 'peren', 'bananen', 'koekjes', 'sap');
if(isset($_POST['submit']))
{   $fruit = $_POST['fruit'];
   $values = array($collection);
    foreach($collection as $selection )
    {     if(array($selection, $fruit))
            { $values[ $selection ] = 1;  }
        else
            { $values[ $selection ] = 0;  }
   }
?>


Waar of wat is hier boven fout? Als ik het insert in de database zijn alle antwoorden 1.
Ik weet niet wat je denkt te bereiken door overal array() omheen te plakken, maar probeer het zo eens:
<?php
$collection= array('appels', 'peren', 'bananen', 'koekjes', 'sap');
if(isset($_POST['submit']))
{ $fruit = $_POST['fruit'];
$values = array();
foreach($collection as $selection )
{ if($selection === $fruit)
{ $values[ $selection ] = 1; }
else
{ $values[ $selection ] = 0; }
}
?>

Ik heb wel mijn vraagtekens waarom je ook dingen die je niet kiest in de database zou willen stoppen, maar je zal er wel een goede reden voor hebben.
Nu zijn alle antwoorden in de database 0 ookal vink ik ze aan.
Zou je een passendere titel willen invullen bij je eerste bericht? Er word hier namelijk een titel verwacht die je probleem of vraag omschrijft.

Alvast bedankt!
Laat ook je formulier eens zien en een output van var_dump($values) na de submit.

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


$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
else {
echo ("Connection good");
}
$collection= array('appels', 'peren', 'bananen', 'koekjes', 'sap');
if(isset($_POST['submit']))
{   $fruit = $_POST['fruit'];
   $values = array();
    foreach($collection as $selection )
    {     if($selection === $fruit)
            { $values[ $selection ] = 1;  }
        else
            { $values[ $selection ] = 0;  }
   }

$sql = "INSERT INTO fruit (appels, peren, bananen, koekjes, sap)
   {$values['appels']}, {$values['peren']}, {$values['bananen']}, {$values['koekjes']}, {$values['sap']})";			
	
if ($conn->query($sql) === TRUE) {
echo "<script type= 'text/javascript'>alert('New record created successfully');</script>";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
} 
} 
;
}	
	}	
?>
<html>
<head>
</head>
<body>
<form action="index.php" method="post">
  <input type="checkbox" name="fruit[]" value="appels"> 
  <input type="checkbox" name="fruit[]" value="bananen">
  <input type="checkbox" name="fruit[]" value="koekjes">
  <input type="checkbox" name="fruit[]" value="sap">
  <input type="checkbox" name="fruit[]" value="peren">
  <input type="submit" value="Submit">
</form>
</body>
</html>
Je mist VALUES op lijn 28 en {} is niet nodig.. (value1, value2, value3, value4).

Edit: En nog aantal dingen verkeerd, maar daar laat ik je zelf achter komen.
DavY - op 17/01/2016 18:01:27

Je mist VALUES op lijn 28 en {} is niet nodig.. (value1, value2, value3, value4).

Edit: En nog aantal dingen verkeerd, maar daar laat ik je zelf achter komen.


Dat values klopt dat was kopieer foutje.. :/

en ik ben hier eigenlijk gekomen om te vragen voor hulp.. :d
Mijn tip: Zorg als je blieft voor goede uitlijning.
Als ik dit zie:

}
}
}
}
}

Dan vraag ik me af of je zelf nog goed kan zien welke accolade nou bij welke statement hoort.
Je form klopt totaal niet met je afhandeling. Je hebt hier $_POST['fruit'] die zelf ook nog weer een array is. Deze array moet je gebruiken om je query op te bouwen.

Reageren