Alias per i valori in un campo di una tabella Database MySql

Discussione in 'PHP' iniziata da myprobsql, 29 Maggio 2017.

Tag (etichette):
  1. myprobsql

    myprobsql Nuovo Utente

    Registrato:
    24 Marzo 2017
    Messaggi:
    4
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ciao a tutti , vi espongo il mio problema.
    Premesso che questo riguarda sia codice PHP che query MySql, se sono nella sezione sbagliata, vi prego di moderare questo post.
    Il mio quesito è :
    Ho una tabella MySql che si chiama [USER]
    All'interno ho questi campi (NAME,STATUS,DESIGNATION)

    | NAME | STATUS | DESIGNATION |
    -------------------------------
    | ABCD | 0 | MD |
    | DCFG | 1 | CEO |
    | AHSG | 1 | DD |

    È possibile eseguire una query MySQL in PHP per ottenere un output simile a questo?

    | NAME | STATUS | DESIGNATION |
    -------------------------------------------
    | ABCD | No | Managing Director |
    | DCFG | YES | Chief Executive Officer |
    | AHSG | YES | Deputy Director |

    Dovrei inserire questa query in un file php.
    Attualmente sto lavorando con XCRUD.

    $xcrud->query('SELECT status FROM users CASE status WHEN 0 THEN 'N0' WHEN 1 THEN 'YES'
    END AS Status, CASE Designation WHEN 'MD' THEN 'Managing Director' WHEN 'CEO' THEN 'Chief Executive Officer' WHEN 'DD' THEN 'Deputy Director' END AS Designation ;

    Ma questo non funziona, in cosa sto sbagliando?
    Grazie a tutti
     
  2. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.577
    Mi Piace Ricevuti:
    128
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    credo ci sia
    un errore di sintassi php dovuto agli apici, dovresti usare virgolette e apici,
    poi sempre errore di sintassi della query che dovrebbe essere
    PHP:
    $xcrud->query("
    SELECT name,
      CASE status
        WHEN 0 THEN 'N0'
        WHEN 1 THEN 'YES'
      END AS Status,
      CASE Designation
        WHEN 'MD'  THEN 'Managing Director'
        WHEN 'CEO' THEN 'Chief Executive Officer'
        WHEN 'DD'  THEN 'Deputy Director'
      END AS Designation
      FROM users"
    );
    come suggerimento, potresti creare una tabella che contiene 2 campi,
    codice (0,1,md,ceo,dd.....)
    descrizione (valore da assegnare al codice)
    in questo modo non avrai una query lunghissima per le tipologie e potrai facilmente gestire le aggiunte/variazioni sulla tabella senza intervenire sul codice php o altro
    la query con la tabella, potrebbe essere
    PHP:
    SELECT
    u
    .name,
    ts.descrizione AS status,
    td.descrizione AS designation
    FROM users u
    LEFT JOIN TabDescr ts ON u
    .status ts.codice
    LEFT JOIN TabDescr td ON u
    .designation td.codice
    che potresti scrivere anche
    PHP:
    SELECT
    u
    .name,
    (
    select descrizione FROM TabDescr where codice u.statusstatus,
    (
    select descrizione FROM TabDescr where codice u.designationdesignation
    FROM users u
     
    Ultima modifica: 29 Maggio 2017
Sto caricando...

Condividi questa Pagina