ciao ragazzi qulcuno può darmi un aiuto su questo problema:

io ho una pagina in cui ho delle checkbox, di cui alcune spuntate e altre no.

ora cerco di fare questo, nella pagina che ho detto prima posso decidere di aggiungere delle categorie spuntando le checkbox corrrispondenti oppure eliminarne alcune togliendo la spunta.

però il fa in modo sbgliato nel senso che non rispetta quello che voglio fare, cioè a volte cancella tutto, a volte solo alcune ecc

Codice:
<?php
//Includo i file per la connessione
//e per la verifica Utente
require_once('connessione.php');
require_once('verificalogin.php');
?>
<html>
<head>
</head>
<body>
<form action="modifcaprofilo.php" method="post" >
<?php

if(!isset($_SESSION['utente'])) {
    echo 'errore';
                                 }
                                 
 else {
 
    $user=$_SESSION['utente'][0];

}

echo "<b>il tuo profilo contiene le categorie selezionate:</b>";
echo "<br>";
echo "<br>";


//prendo l'id dellutente connesso//
$query1 = "SELECT idutente FROM utente WHERE username='$user'"; 
$result1 = mysql_query($query1) or die("Errore nella query1:".mysql_error()); 
$row = mysql_fetch_array($result1); 
$idutente = $row['idutente'];
//////////////////////////////////


///prendo le categorie padre///
$query="select * from categoria where idpadre='0' order by idcategoria";
$result = mysql_query($query);

while($fetch=mysql_fetch_array($result)) {

$idcateg=$fetch['idcategoria'];
$nomepadrecategoria=$fetch['nome'];


//prendo le categorie che hanno quel padre
$query="select * from categoria where idpadre='$idcateg' order by idcategoria";
$risultato=mysql_query($query);
    
    //stampo il nome del padre
    echo "<b>".$nomepadrecategoria."</b><br>";
    
    while($array=mysql_fetch_array($risultato)) {
    
        echo $array['nome'];    //stampo il nome di tutte le categorie
        $idcat=$array['idcategoria'];

$query8 ="select idcategoria from seleziona where idutente='$idutente' and idcategoria='$idcat'";
$result8 = mysql_query($query8) or die("Errore nella query:".mysql_error()); 
$numrighe = mysql_num_rows($result8);     

    echo '<input type="checkbox"';
    if ($numrighe>0) echo 'checked';
    echo ' name='.$idcat.' >';
    echo $nomecategoria."<br>";

 
}

}


 ?>
 
<input name="invia" type="submit" value="invia modifica">
</form>
Codice:
<?php
//Includo i file per la connessione
//e per la verifica Utente
require_once('connessione.php');
require_once('verificalogin.php');

//prendo l'id dellutente connesso//
if(!isset($_SESSION['utente'])) {
    echo 'errore';
                                 }
                                 
 else {
 
    $user=$_SESSION['utente'][0];

}




///////////////////////////////////
$query1 = "SELECT idutente FROM utente WHERE username='$user'"; 
$result1 = mysql_query($query1) or die("Errore nella query1:".mysql_error()); 
$row = mysql_fetch_array($result1); 
$idutente = $row['idutente'];
//////////////////////////////////




    $query2 = "SELECT idcategoria FROM seleziona"; 
    $result2 = mysql_query($query2) or die("Errore nella query1:".mysql_error());  
    while($row2=mysql_fetch_array($result2))
    { 
        $categ = $row2['idcategoria'];
        if ($_POST[$categ]=="on")
        {
            $query3 = "SELECT idcategoria FROM seleziona where idcategoria='$categ' and idutente='$idutente'"; 
            echo $query3;
            $result3 = mysql_query($query3) or die("Errore nella query1:".mysql_error());
            $row3 = mysql_num_rows($result3);
            if ($row3==0)
            {
            $query4="INSERT INTO seleziona(idutente,idcategoria)VALUES('$idutente','$categ')";
            echo $query4;
            $result4=mysql_query($query4) or die("Errore nella query1:".mysql_error());
            }
        }
        else
        {
            $query3 = "SELECT idcategoria FROM seleziona where idcategoria='$categ' and idutente='$idutente'"; 
            echo $query3;
            $result3 = mysql_query($query3) or die("Errore nella query1:".mysql_error());
            $row3 = mysql_num_rows($result3);
            if ($row3>0)
            {
            $query4="delete from seleziona where idcategoria='$categ' and idutente='$idutente'";
            //echo $query4;
            $result4=mysql_query($query4) or die("Errore nella query1:".mysql_error());
            
            
            }
        }
    }
?>