tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
294
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DeluXe DeluXe ist offline Funkjoker
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    847
    Abends zusammen,

    ich hab ein kleines Problem beim Auslesen von Daten aus einer Datenbank.

    Ich habe zwei Tabellen:

    table categories
    +-----------------------------------------+
    | id | pid | field1 | field2 |
    +-----------------------------------------+
    | 1 | 0 | oink | 7 |
    +-----------------------------------------+
    | 2 | 0 | moep | 11 |
    +-----------------------------------------+

    table fields
    +-------------------------------------------------+
    | id | name | title | description |
    +-------------------------------------------------+
    | 1 | Zeugs | foo | Viel Zeug |
    +-------------------------------------------------+
    | 2 | Gedöhns | bar | falleri |
    +-------------------------------------------------+

    Die Tabelle "categories" kann per Klicki-Bunti um weitere Felder erweitert werden, welche aus dem Wort "field" plus die ID aus der Tabelle "fields" zusammen gesetzt werden.
    So entstehen diese Felder.

    Das Problem an der ganzen Geschichte:
    Ich möchte, das der Spaltenname, z. B. "field1", mit dem String, welcher in "title" der Tabelle "fields" mit der ID 1, ausgetauscht wird.
    Im Endeffekt erhalte ich beim Auslesen dann ein Feld names "foo" und ein Feld namens "bar", nicht "field1" und "field2".

    Ist das nur mit MySQL überhaupt machbar?

    (Ich möchte an dieser Stelle nicht über Sinn oder Unsinn einer solchen Vorgehensweise diskutieren, ich weiss sehr wohl dass das nicht die feine Art ist. Danke.)
     

  2. #2
    planb2000 planb2000 ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Beiträge
    133
    Hi,

    meinst Du sowas hier:
    PHP-Code:
    CREATE  PROCEDURE xtest3(varGo char(16))
                  
    BEGIN
             
    DECLARE varColumn1 varchar(41);
             DECLARE 
    varColumn2 varchar(41);
                
    SELECT title INTO varColumn1 from fields1 where id 1;
                
    SELECT title INTO varColumn2 from fields1 where id 2;
                        
    select varColumn1;
                
    set @c1 concat ('alter table categories change field1 'varColumn1,'  varchar(25) ');
                        
    select varColumn2;
          
    set @c2 concat ('alter table categories change field2 'varColumn2,'  varchar(25) ');                    
                
    prepare stmt1 from @c1;
              
    execute stmt1;
              
    prepare stmt from @c2;
              
    execute stmt;
              
    select varGo;
               
    END;
    // 
     

  3. #3
    DeluXe DeluXe ist offline Funkjoker
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    847
    Ich hab mir das eben mal angesehen und muss sagen...das ist selbst mir zu dirty.

    Ich habe auf irgendeine von MySQL bereit gestellte Funktion gehofft, die mir bei dem Problem hätte behilflich sein können, nicht jedoch auf ein solches Gebastel (Ich empfinde es leider als ein solches.)

    Dann muss ich eben doch eine Query mehr machen, um an die nötigen Informationen zu kommen...davon wird der Server nicht untergehen
     

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 02.04.10, 14:52
  2. Inhalt eines Feldes in Spalten auftrennen
    Von silkeR im Forum Relationale Datenbanksysteme
    Antworten: 11
    Letzter Beitrag: 28.03.08, 18:12
  3. Antworten: 5
    Letzter Beitrag: 09.02.06, 09:01
  4. MySQL: Spaltennamen aus Tabelle auslesen
    Von DivDax im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 11.05.05, 23:01
  5. Inhalt eines angeklickten Feldes im DataGrid
    Von MeikeBehrens im Forum .NET Archiv
    Antworten: 9
    Letzter Beitrag: 24.09.04, 10:55