• User

    Come estrapolare i nomi delle colonne di una tabella

    Ciao a tutti. Come avete letto dal titolo vorrei estrapolare da una tabella i nomi di tutte le colonne e non i dati contenuti.

    Nel dettaglio il progettino che vorrei fare è questo:

    • ho un database mySql con una tabella contenente X colonne (non conosco ne il numero ne il loro nome); *
    • da questa tabella vorrei estrarre soltanto il nome di tutte le colonne e lasciar perdere tutti gli altri dati contenuti;
    • il nome di tutte le colonne le vorrei visualizzare su una pagina ed ogni nome deve essere affiancato da un "Input Radio".

    Il mio obiettivo è quello di creare un piccolo codice che automaticamente si collegi alla tabella contenuta nel database e faccia quanto ho scritto sopra.

    • Non conosco il numero delle colonne e il loro nome perché creo molte tabelle una diversa dall'altra.

    Spero proprio che possiate aiutarmi.

    Ciao, grazie.


  • User

    Ciao a tutti.

    Nel progettino che sto realizzando sono finalmente riuscito a estrapolare il nome delle colonne e a visualizzarle su una pagina PHP.

    Qualche consiglio per aggiungere gli Input Radio?

    Ciao.


  • User Attivo

    Beh invece di stampare i nomi singoli stampi il form con i radio input...


  • User

    Ciao Bacca, grazie per la risposta.

    Sono riuscito a stampare i nomi con un ciclo while con questo codice:
    [PHP]while ( $dati = mysql_fetch_array($risultato) ){
    echo $dati [0]."<input name="dato" type="radio" value="".$dati [0]."">";
    }[/PHP]
    Ora quello che dovrei riuscire a fare è assegnare a ciascun "Input radio" la relativa colonna della tabella.
    Qualche consiglio sul codice?

    Ciao, grazie


  • User Attivo

    Ma il nome della colonna o il suo contenuto nella row "attuale" che sta processando il while?


  • User

    Ciao Bacca001.

    Il ciclo while sta processando il nome della colonna. Quello che devo riuscire a fare ora è associare ciascun "Input Radio" alla relativa colonna della tabella in modo da poter leggere tutti i suoi dati.

    Ciao.


  • User Attivo

    Posta il codice che hai ora, o meglio le query che esegui così capisco


  • User

    Ciao Bacca001.

    Prima di postarti il codice che ho scritto fino ad ora vorrei spiegarti quello che vorrei fare.

    In una pagina ci sono due DIV allineati chiamati rispettivamente ASSE_X e ASSE_Y in cui ci sono l'elenco dei nomi delle colonne della tabella del database con gli "Input Radio". Affianco ai due DIV c'è un terzo DIV contenente il grafico da costruire/modificare.

    L'elenco dei nomi delle colonne della tabelle + gli Input Radio li inserisco da codice perché della tabella conosco soltanto il suo nome, mentre ignoro il numero delle colonne ed il loro nome.

    Quello che vorrei fare è questo: dare la possibilità all'utente di scegliere il campo delle X e il campo delle Y e, una volta premuto un bottone, creare/aggiornare il grafico.

    Fino ad oggi ero io che sceglievo per l'utente il campo della X e della Y che credevo più opportuno, ma ora vorrei che fosse lui stesso a costruirsi il grafico a suo piacimento.

    Fino ad ora sono riuscito ad estrarre i nomi delle colonne ed affiancargli gli Input Radio; ora dovrei estrarre dalla tabella solo i due campi (X e Y) che l'utente ha scelto.

    Detto questo ti allego il codice che ho scritto per estrarre dalla tabella il nome di tutte le colonne e affiancarci gli Input Radio.

    [PHP]
    $risultato = mysql_query ('SHOW COLUMNS FROM tabella');
    echo "<form name="form1" method="post" action="graph.php">";
    while ( $asse_y = mysql_fetch_array($risultato) )
    { echo $asse_y [0]."<input name="asse_y" type="radio" value="".$asse_y [0]."">".$rigo.$rigo; }[/PHP]

    Ciao, grazie e scusa se sono stato un po lungo


  • User Attivo

    Se ho capito bene hai già la lista delle colonne quindi, ora per leggerne i dati devi darli in pasto ad una query sulla tabella stessa:

    [php]
    $selezionato = $_POST['asse_y'];
    if (!empty($selezionato)){
    $ris2 = mysql_query("SELECT {$selezionato} FROM tabella;");
    ricrei tutta la scaletta
    }else{
    echo "Errore input!";
    }
    [/php]


  • User

    Ciao Bacca001. Hai afferrato in pieno il mio post precedente.

    Il codice PHP che mi hai scritto purtroppo mi da errore nel primo rigo ($selezionato = $_POST['asse_y'];). L'errore è questo: "Notice: Undefined index: asse_y in C:\xampp\htdocs...".

    Io credo che il problema sta nel fatto che la pagina non nasce con gli Input Radio già inseriti, ma questi vengono inseriti successivamente da codice dopo la connessione con il database e la relativa tabella. Se io apro il programma con cui sto scrivendo il codice PHP e vado nella sezione "design" gli Input Radio non ci sono; di conseguenza il codice PHP alla riga ($selezionato = $_POST['asse_y'];) si chiede: che cos'è asse_y?. Questo perché nella pagina non ci sono; Secondo me continua a vedere una pagina bianca senza Input Radio anche se in realtà li ha inseriti!!!

    Cosa ne pensi e dove potrei modificare il codice?

    Ciao, grazie


  • User Attivo

    Notice ti dice che asse_y non è presente infatti, controlla con un editor dell'header e controlla che ci sia questa variabile..