hoi,
ich versuche derzeit, für eine Liste eine Art "zweite Benutzerbefugnisse" zu erstellen, in denen angegeben wird, wer in einer bestimmten Datenbankkategorie lesen/schreiben/löschen/bearbeiten darf.
Zur Generierung der einzelnen Selectboxen, in denen man auswählen kann. wer was machen darf verwende ich eine Funktion cat_auth_list() mit folgendem Inhalt:
es werden aber nicht mehrere Felder angezeigt, sondern nur eines, was dann auch noch falsch ausgefüllt wird. Da in der Funktion aber eine while-Schleife zum Einsatz kommt, die eigentlich immer erfüllt ist, sollten eigentlich alle Felder angezeigt werden. Die SQL-Query ist korrekt(mit phpMyAdmin getestet)
wer weiß Rat?
ich versuche derzeit, für eine Liste eine Art "zweite Benutzerbefugnisse" zu erstellen, in denen angegeben wird, wer in einer bestimmten Datenbankkategorie lesen/schreiben/löschen/bearbeiten darf.
Zur Generierung der einzelnen Selectboxen, in denen man auswählen kann. wer was machen darf verwende ich eine Funktion cat_auth_list() mit folgendem Inhalt:
PHP-Code:
//
// Generate Cat Auth List
//
function cat_auth_list($cat_id, $auth_view, $auth_read, $auth_edit, $auth_delete )
{
global $db;
$sql = "SELECT *
FROM " . BOOK_CATEGORIES_AUTH_TABLE . "
WHERE cat_id = '$cat_id'";
$result = $db->sql_query($sql);
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't get Auth Data", "", __LINE__, __FILE__, $sql);
}
while( $row = $db->sql_fetchrow($result) )
{
if ( $row['auth_view'] )
{
$auth_view_select = '<select name="auth_view">';
if( $row['auth_view'] == $auth_view)
{
$selected = "selected='selected'";
}
else
{
$selected = "";
}
$auth_view_select .= '<option value="0"' . $selected . '>ALL</option>';
$auth_view_select .= '<option value="1"' . $selected . '>REG</option>';
$auth_view_select .= '<option value="2"' . $selected . '>MOD</option>';
$auth_view_select .= '<option value="3"' . $selected . '>ADMIN</option>';
$auth_view_select .= "</select>";
return $auth_view_select;
}
if ( $row['auth_read'] )
{
$auth_read_select = '<select name="auth_read">';
if( $row['auth_read'] == $auth_read)
{
$selected = "selected='selected'";
}
else
{
$selected = "";
}
$auth_read_select .= '<option value="0"' . $selected . '>ALL</option>';
$auth_read_select .= '<option value="1"' . $selected . '>REG</option>';
$auth_read_select .= '<option value="2"' . $selected . '>MOD</option>';
$auth_read_select .= '<option value="3"' . $selected . '>ADMIN</option>';
$auth_read_select .= "</select>";
return $auth_read_select;
}
if ( $row['auth_edit'] )
{
$auth_edit_select = '<select name="auth_edit">';
if( $row['auth_edit'] == $auth_edit)
{
$selected = "selected='selected'";
}
else
{
$selected = "";
}
$auth_edit_select .= '<option value="0"' . $selected . '>ALL</option>';
$auth_edit_select .= '<option value="1"' . $selected . '>REG</option>';
$auth_edit_select .= '<option value="2"' . $selected . '>MOD</option>';
$auth_edit_select .= '<option value="3"' . $selected . '>ADMIN</option>';
$auth_edit_select .= "</select>";
return $auth_edit_select;
}
if ( $row['auth_delete'] )
{
$auth_delete_select = '<select name="auth_delete">';
if( $row['auth_delete'] == $auth_delete)
{
$selected = "selected='selected'";
}
else
{
$selected = "";
}
$auth_delete_select .= '<option value="0"' . $selected . '>ALL</option>';
$auth_delete_select .= '<option value="1"' . $selected . '>REG</option>';
$auth_delete_select .= '<option value="2"' . $selected . '>MOD</option>';
$auth_delete_select .= '<option value="3"' . $selected . '>ADMIN</option>';
$auth_delete_select .= "</select>";
return $auth_delete_select;
}
}
}
es werden aber nicht mehrere Felder angezeigt, sondern nur eines, was dann auch noch falsch ausgefüllt wird. Da in der Funktion aber eine while-Schleife zum Einsatz kommt, die eigentlich immer erfüllt ist, sollten eigentlich alle Felder angezeigt werden. Die SQL-Query ist korrekt(mit phpMyAdmin getestet)
wer weiß Rat?
Kommentar