Selectbox-Tabelle

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Selectbox-Tabelle

    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:

    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?

  • #2
    PHP-Code:
    while( $row $db->sql_fetchrow($result) )
    {
         if ( 
    $row['auth_view'] ) 
         {          
              
    $auth_view_select '<select name="auth_view">'
    ist ja auch kein wunder du überschreibts ja jedesmal $auth_view_select. machs mal so
    PHP-Code:
     $auth_view_select. = '<select name="auth_view">'
    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      ich hab die Funktion mal folgendermaßen verändert:

      PHP-Code:
      //
      // Generate Cat Auth List
      //
      function cat_auth_list2($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);
          }

          
      $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

          
      $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

          
      $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

          
      $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 zeigt sich aber keine Veränderung, bis auf das der Wert des einzigen Selectfeldes nun richtig ist.

      mfg Johny

      Kommentar


      • #4
        der Aufruf von return gibt den definierten Wert zurück und beendet die Ausführung der Funktion.

        daher bekommst auch nur eine combobox angezeigt.

        Kommentar


        • #5
          gut zu wissen, danke!

          dafür ist jetzt aber die Vorbelegung des Selectfeldes flöten gegangen, hab nur alle return durch echo ersetzt

          Kommentar


          • #6
            könnte daran liegen, dass du genau ein mal den Wert für $selected festlegst, und dann alle options damit setzt.

            will sagen: entweder setzt du alle auf selected oder keines...

            Kommentar


            • #7
              sollte ich also den Variablennamen pro Feld immer anders haben?

              Kommentar


              • #8
                ok ich habe mal die select-Variable immer andres benannt. Jetzt wird aber in allen Selectboxen der vierte Wert angezeigt(und nicht wie vorher der erste)

                Kommentar

                Lädt...
                X