Checkbox checked/unchecked

redback79

Erfahrenes Mitglied
Hallo zusammen,

Ich bin an einem Sessionbasierten Loginsystem, bei dem die verschiedenen Benutzer Rechte zum Zugriff auf Projekte zugewiesen kriegen. Nun möchte ich zwei Arrays deren Daten aus zwei verschiedenen Datenbanktabellen stammen ("userrights" und "project") untereinander vergleichen.
Die übereinstimmenden Daten sollen in einem Checkboxformular als "checked" angezeigt werden, der Rest soll als "unchecked" darunter aufgelistet werden.

Die Variable $username wird von einem Loginformular an folgendes Script weitergegeben:

PHP:
<?php
$verbindung = mysql_pconnect( "localhost", "xxx", "xxx");
mysql_select_db("xxx");


if (!$verbindung)
{
    echo "Keine Verbindung zur Datenbank";
    exit;
}

	//ABFRAGE DER RECHTE
	$sqlkommando = "SELECT projectname FROM userrights where username = '$username'";
	$result1 = mysql_query ($sqlkommando);
	$rechte = mysql_fetch_array ($result1);
	
	//ABFRAGE DER GESAMTEN PROJEKTE
    $sqlkommando2 = "SELECT projectname FROM project";
    $result2 = mysql_query($sqlkommando2);
    $projekte = mysql_fetch_array ($result2);

?>


<b>Der Benutzer "<?php echo"$username"; ?>" hat Zugriffsrechte auf folgende Projekte:</b>
<?php echo"<form method='POST' action='setrights_user.php?username=$username'>"; ?>

<table>


<?php
$ueberschneidung = array_intersect($rechte, $projekte);
$rest = array_diff($rechte, $projekte);
		
//PROJEKTE IN TABELLE AUSGEBEN

//checked
for($x=0;$x<sizeof($ueberschneidung);$x++){
                echo"
                  <tr>
                    <td width='22'><input type='checkbox' name='check[]' value='$ueberschneidung[$x]' checked></td>
                    <td width='21'></td>
                    <td width='563'>$ueberschneidung[$x]</td>
                  </tr>";                
}

//unchecked
for($y=0;$y<sizeof($rest);$y++){
                echo"
                  <tr>
                    <td width='22'><input type='checkbox' name='check[]' value='$rest[$y]'></td>
                    <td width='21'></td>
                    <td width='563'>$rest[$x]</td>
                  </tr>";
}


?>

  <tr>
    <td width="22"></td>
    <td width="21"></td>
    <td width="563"> <input type="submit" value="Rechte festlegen""></td>
  </tr>
</table>
</form>


Kann mir jemand weiterhelfen?

Vielen Dank im Voraus!
Gruss redback79


ps. PHP Version 4 ;-)


Nachtrag: Mit obigem Script werden lediglich zwei "unchecked" Boxen welche denselben Projektnamen besitzen angezeigt :-(
 
Zuletzt bearbeitet:
Hi,

verstehe zwar gerade nicht ganz, was du vor hast, aber trotzdem habe ich einen eventuellen Fehler im Skript gefunden:

Und zwar versucht du $rest in deiner zweiten For-Schleife ebenfalls mit $x aufzurufen.
Ich schätze mal, dass du eher $rest[$y] schreiben wolltest. Vielleicht liegt es ja daran...

Ansonsten bitte nochmal genauer erklären, was du möchtest :), danke.

Nachtrag:
Des Weiteren würde dir MySQL bei $result2 nur einen Eintrag in ein Array speichern, da du keine while-Schleife benutzt. Ist es so gewollt?
 
Zuletzt bearbeitet:
Zurück