• User Attivo

    Questionario

    Ciao a tutti, ho tra le mani uno script, quello classico che filtra regioni,città e paesi, stavo provando a riutilizzarlo, rendendolo una specie di questionario, una soluzione l'avevo trovata ma era diventata lunga, grezza e complicata, spero possiate aiutarmi:

    ho queste tabelle nel database con i seguenti campi:

    tabella: questionario_nome
    campo: id
    campo: nome

    la prima select popola questi nomi contenuti nel campo "nome"
    -giovanni
    -marco
    -stefania

    tabella: questionario_sesso
    campo: id
    campo: sesso

    la seconda select popola i due sessi contenuti nel campo "sesso"
    -maschio
    -femmina

    tabella: questionario_anni
    campo: id
    campo: anni

    la terza select popola gli anni contenuti nel campo "anni"

    • 20-30 anni
    • 30-40 anni
    • 40-50 anni

    tabella: questionario_risultato
    campo: id
    campo: id_nome
    campo: id_sesso
    campo: id_anni
    campo: risultato

    la quarta select dovrebbe popolare un risultato in base alle selezioni precedenti.

    questo è lo script che sto utilizzando

    
    <?php
    require 'dbconfig.php';
    $conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die;
    mysql_select_db(DB_NAME) or die;
    $pid = (int)$_REQUEST['id'];
    $tb = mysql_real_escape_string($_REQUEST['table'], $conn);
    switch($tb) {
    	case 'questionario_nome':
    		$sql="SELECT id, nome FROM `$tb` ORDER BY nome";
    		break;
    	case 'questionario_sesso':
    		$sql="SELECT id, sesso FROM `$tb` ORDER BY sesso";
    		break;
    	case 'questionario_anni':
    		$sql="SELECT id, anni FROM `$tb` ORDER BY anni";
    		break;
    	case 'questionario_risultato':
    		$sql="SELECT id, risultato FROM `$tb` WHERE id_anni=$pid ORDER BY risultato";
    		break;	
    }
    $out="$tb;";
    if($result = mysql_query($sql, $conn)) {
    	while ($row = mysql_fetch_row($result)) {
    		$out .= $row[0] . '|' . $row[1] . ';';
    	}
    }
    echo rtrim($out, ';');
    ?>
    
    

  • ModSenior

    Ciao cla83,
    ma la domanda qual'è?


  • User Attivo

    Ciao Thedarkita,
    grazie per la risposta,
    dunque come riesco ad ottenere una cosa del genere?
    per esempio se seleziono:

    • marco (che corrisponde all'id 2 del campo nome)
    • maschio (che corrisponde all'id 1 del campo sesso)
    • 20-30 anni (che corrisponde all' 1 del campo anni)
    • risultato 4 (vorrei ottenere questo risultato)

    se invece seleziono

    • 30-40 anni (che corrisponde all'id 2 del campo anni)
    • risultato 5 (vorrei ottenere questo risultato)

  • User Attivo

    Ho risolto in un altro modo più semplice, grazie comunque per l'aiuto 🙂


  • User Attivo

    Ciao a tutti,
    riuppo questo post per avere un Vs aiuto,
    ho ottenuto il questionario precedentemente postato, realizzando una sorta di motore di ricerca, che mi filtra il risultato specifico dopo aver selezionato tutte le risposte tramite le select.

    Quello che vorrei chiedervi è:
    Se ho 5 domande ed ognuna ha 3 scelte diverse e il risultato dovrebbe essere sempre differente, allora faccio questo calcolo 3x3x3x3x3= 246.
    Devo realizzare 246 combinazioni possibili nel database?
    scommetto che sto dicendo una baggianata vero? :mmm:

    Grazie a tutti in anticipo


  • User Attivo

    Un piccolo aiuto? :mmm: