Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    23

    Come generare un array dinamico per l'aggiunta di lingue?

    Partendo da ciò:

    Codice PHP:
    <?php

    function transqa($result)
    {

      foreach(
    $result as $row)
      {
       
    $output[]=array('id'=>$row['id'], 'italiano'=>$row['italiano']);
       }

     return 
    $output;
     }

    ?>
    Ipotizzando che si voglia fare un pannello di controllo per un "dizionario" dove l'utente possa aggiungere lingue a piacere semplicemente con un pulsante che gli permetta di inserire il nome della nuova colonna (alter table add), e che il risultato finale sia una semplice tabella da riempire poi con tutte le traduzioni manualmente, come si compone un array dinamico in questo caso, per la visualizzazione?
    So che esiste array_push, ma non so come fare il ciclo che lo conterrà. Non saprei che condizione mettere per dirgli:"finchè ci sono colonne in $result, prendine il valore ed aggiungilo nell'array". Mi piacerebbe anche estrarne il nome della colonna così come ho fatto per "italiano".
    Come traggo tutto ciò da $result?

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Mi sa che stai facendo confusione tra colonna e valore in una colonna. Non serve a nulla avere un colonna chiamata "italiano" o "francese" o "inglese", etc...in una tabella. Basta avere una colonna "lingua" che fa parte della chiave univoca. Se hai una tabella con un id che corrisponde ad un utente e che aggiungi una colonna "francese" questa colonna vale per tutti gli altri utenti... e soprattutto cosi non potrai mai fare una query per sapere se pippo usa l'inglese e caio l'italiano.

    Deve esserci una guida base sui database.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    23
    Quote Originariamente inviata da badaze Visualizza il messaggio
    .
    Ti ringrazio, quindi non si possono costruire gli array dinamicamente traendo dal risultato di una select, le colonne della tabella e quindi
    $output[]=array('id'=>$row['id'], 'italiano'=>$row['italiano'] // + altre dinamiche // );
    non sarebbe fattibile a priori. Giusto?

    In realtà non ho ben capito che intendi. Io non parlavo di utenti da inserire in tabella, immagina che il risultato finale sia a video un pannello di controllo con una tabella, che ha:
    ID(chiave) -> Italiano -> Inglese -> "+"
    e che ogni colonna abbia le caselle riempibili da pannello, con pulsantini sulla destra per editare la riga o cancellarla.
    Se viene aggiunta una nuova lingua, non so come fare la visualizzazione perchè non so come creare dinamicamente l'array. Se non si può fare in alcun caso, dovrei fare una tabella solo dei nomi delle lingue aggiunte e di conseguenza una tabella per ogni lingua che contenga tutte le traduzioni. O se no come suggerivi?

  4. #4
    Conoscere i nomi delle colonne di una tabella MySQL è tecnicamente possibile, tramite la query SHOW COLUMNS
    Codice PHP:
    $query_column_names='SHOW COLUMNS FROM my_table'
    Credo però sia consigliabile avere delle tabelle che si espandano "verticalmente" e non "orizzontalmente" con alter table.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.