Ik was bezig met een script om te filteren wat aan en uit stond, dat is uit eindelijk gelukt.
Ik zal hier onder posten hoe ik het opgelost heb.
Mede dank van een goede vriend, die mij op de goede weg heeft gebracht met een klein stukje code.
$services = array_values($dbase1a);
$checked = array_values($_POST['services']);
$diff = array_diff($services, $checked);
De rest liet hij mezelf helemaal uitzoeken. Dus ik moest ik alsnog zelf denken ;)
Uiteindelijk na veel proberen, testen en uitzoeken, heb ik het opgelost.
Wat heb ik gedaan? Nou laat ik het zo vertellen, dat er veel dagen en uren in hebben gezeten, na zijn oplossing, duurde het ongeveer 1 dag meer, maar dit is wat ik ervan gemaakt heb.
Ik post het hele script hier, mocht je het kunnen gebruiken of er iets van kunnen gebruiken, "Be my guest".
<?php
// Reqiuered data (DON`T REMOVE THIS!!!) //
$sql1 = 'SELECT * FROM Services';
$result1 = mysqli_query($connect, $sql1);
$data1 = mysqli_fetch_all($result1, MYSQLI_ASSOC);
$sql2 = 'SELECT * FROM UserServices WHERE User_ID = '.$_SESSION['ID'].'';
$result2 = mysqli_query($connect, $sql2);
$data2 = mysqli_fetch_all($result2, MYSQLI_ASSOC);
$sql3 = 'SELECT * FROM Girls WHERE ID = '.$_SESSION['ID'].'';
$result3 = mysqli_query($connect, $sql3);
$data3 = mysqli_fetch_all($result3, MYSQLI_ASSOC);
$dbase1 = array_column($data1 , 'ID' , 'Services');
$dbase1a = array_column($data1 , 'Services' , 'ID');
$dbase2 = array_column($data2 , 'User_ID' , 'Services_ID');
$dbase3 = array_column($data3 , 'Nickname' , 'ID');
// Insert or Updating your services //
if($_GET['menu'] == 'services' && $_GET['action'] == 'postservices') {
if(isset($_POST['submit'])) {
if(empty($_POST['services'])) {
$query ='DELETE FROM UserServices WHERE User_ID = "'.$_SESSION['ID'].'"';
$result = mysqli_query($connect, $query);
echo "<div class='returnbox2'>All Services = Now set OFF!</div>";
echo "<div class='returnbox3'><a href='index.php?menu=myservices'>Go back</a></div>";
}
// Put ON or OFF from the posted request //
$services = array_values($dbase1a);
if(!empty($_POST['services'])) {
$checked = array_values($_POST['services']);
$diff = array_diff($services, $checked);
echo "<div class='returnbox1'>Wich services you put ON</div><div class='box-grid-on'>";
// Checked values to put ON //
foreach($services as $num => $name) {
foreach($checked as $checknum => $checkname) {
if($name == $checkname) {
$query = 'SELECT * FROM Services WHERE Services = "'.$name.'"';
$result = mysqli_query($connect, $query);
while ($row = mysqli_fetch_object($result)) {
$checking = $row->ID;
$query1 = 'SELECT * FROM UserServices WHERE Services_ID ="'.$checking.'"';
$result1 = mysqli_query($connect, $query1);
$row1 = mysqli_num_rows($result1);
$query2 = 'INSERT IGNORE INTO UserServices (User_ID, Services_ID) VALUES ('.$_SESSION['ID'].', '.$checking.')';
$result2 = mysqli_query($connect, $query2);
echo "<div class='box-item'>".$checkname." = ON</div>";
}
}
}
}
echo "</div>";
echo "<div class='returnbox2'>Wich services you put OFF</div>";
echo "<div class='box-grid-off'>";
// Unchecked values to put OFF //
foreach($services as $num => $name) {
foreach($diff as $diffnum => $diffname) {
if($name == $diffname) {
$query = 'SELECT * FROM Services WHERE Services = "'.$name.'"';
$result = mysqli_query($connect, $query);
while ($row = mysqli_fetch_object($result)) {
$checking = $row->ID;
$query1 = 'SELECT * FROM UserServices WHERE Services_ID ="'.$checking.'"';
$result1 = mysqli_query($connect, $query1);
$row1 = mysqli_num_rows($result1);
if(!$row1 == 0) {
$query2 ='DELETE IGNORE FROM UserServices WHERE Services_ID = "'.$checking.'" AND User_ID = "'.$_SESSION['ID'].'"';
$result2 = mysqli_query($connect, $query2);
echo "<div class='box-item'>".$diffname." = OFF</div>";
} else {
echo "<div class='box-item'>".$diffname." = OFF</div>";
}
}
}
}
}
echo "</div>";
echo "<div class='returnbox3'><a href='index.php?menu=myservices'>Go back</a></div>";
}
}
} else {
// Form Services page, select what you want to put ON or OFF //
echo "<form action='index.php?menu=services&action=postservices' method='POST'>
<div class='services-grid'>";
$test = 1;
foreach($dbase1 as $Service => $User){
if(isset($dbase3[$_SESSION['ID']])) {
if(isset($dbase2[$test])){
echo "<div class='services-item'><input type='checkbox' name='services[]' id='".$User."' value='".$Service."' checked>".$Service."</div>";
}else{
echo "<div class='services-item'><input type='checkbox' name='services[]' id='".$User."' value='".$Service."'>".$Service."</div>";
}
} else {
echo "Session not found <br/>";
}
$test++;
}
$test = 0;
echo "<div id='button-b'><a href='index.php?menu=myservices'>Return</a></div><div id='button-a'><input type='submit' name='submit' value='Save options'></div>";
echo "</div></form>";
}
?>
