Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Estrarre dati da mysql

  1. #1

    Estrarre dati da mysql

    Scusate ma sto uscendo pazzo. Seguo da tempo il vostro forum e questa volta non ho trovato soluzione al mio problema

    Non so più come uscirmene. Sto realizzano un sito per un'azienda e mi servirebbe realizzare due cose un pò complicate.


    Una prima l'ho sistemata quasi. In pratica ogni utente, tramite il proprio pannello deve poter inserire dei dati e alla fine questi dati devono essere mostrati in una pagina. Ho usato community builder per joomla, gli utenti inseriscono i dati e i dati vengono mostrati in una lista affianco agli utenti...!

    Eccome come funziona ora:



    Tizio scarpe: 1 / maglietta: 0 / pantaloni: 1
    Cazio scarpe: 1 / maglietta: 0 / pantaloni: 1
    Sempronio scarpe: 1 / maglietta: 0 / pantaloni: 1
    Marconio scarpe: 1 / maglietta: 1 / pantaloni: 1




    É possibile creare una lista o una tabella in modo tale che a sinistra ci siano gli utenti e a destra i dati incolonnati e poi sommati?






    Esempio:


    scarpe - maglietta - pantaloni
    Tizio 1 1 0
    Cazio 1 0 1
    Sempronio 0 0 1
    Marconio 1 1 1


    somma 3 2 3




    -----------------------------------------------------------------------------------------




    Poi altra domanda: É possibile creare un sondaggio con la possibilità di sapere anche chi ha votato e cosa ha votato?




    esempio:


    Partecipi al prossimo evento?


    Si Giulio, Marco, Giacomo
    No Camillo, Antonio
    forse Massimo, Antonio
    Al 50% Marianna
    Al 25%




    Mi servono queste due pagine perchè sono fermo da due settimane e sto impazzendo. Aiutantemi, purtroppo non vogliono soluzioni a pagamento ma solo free.
    Esistono plugin o altre cose? Per il sondaggio Kunena era perfetto, ma non mostra il voto degli utenti.



    questo è il codice del mio file php che mi serve per il primo problema. Riuscite a modificarlo?
    codice:
    <?
    // Creo una variabile dove imposto il numero di record 
    // da mostrare in ogni pagina
    $x_pag = 100;
    
    
    // Recupero il numero di pagina corrente.
    // Generalmente si utilizza una querystring
    $pag = $_GET['pag'];
    
    
    // Controllo se $pag è valorizzato...
    // ...in caso contrario gli assegno valore 1
    if (!$pag) $pag = 1; 
    
    
    // Mi connetto al database
    $conn = mysql_connect(".......","............","............");
    mysql_select_db("...........", $conn);
    
    
    // Uso mysql_num_rows per contare le righe presenti
    // all'interno della tabella agenda
    $all_rows = mysql_num_rows(mysql_query("SELECT id FROM jos_comprofiler "));
    
    
    // Tramite una semplice operazione matematica definisco
    // il numero totale di pagine
    $all_pages = ceil($all_rows / $x_pag);
    
    
    // Calcolo da quale record iniziare
    $first = ($pag - 1) * $x_pag;
    
    
    // Recupero i record per la pagina corrente...
    // utilizzando LIMIT per partire da $first e contare fino a $x_pag
    $rs = mysql_query("SELECT * FROM jos_comprofiler  LIMIT $first, $x_pag");
    $nr = mysql_num_rows($rs);
    if ($nr != 0){
      for($x = 0; $x < $nr; $x++){
        $row = mysql_fetch_assoc($rs);
        echo "<table><tr>";
        echo "<td>" . $row['firstname'] . "</td>";
        echo "<td>" . $row['lastname'] . "</td>";
        echo "<td>" . $row['cb_camicia'] . "</td>";
        echo "</tr>";    
        
        echo "</table>";
    
    
      }
    }else{
      echo "Nessun record trovato!";
    }
    
    
    // Se le pagine totali sono più di 1...
    // stampo i link per andare avanti e indietro tra le diverse pagine!
    if ($all_pages > 1){
      if ($pag > 1){
        echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . ($pag - 1). "\">";
        echo "Pagina Indietro[/url]";
      } 
      if ($all_pages > $pag){
        echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . ($pag + 1) . "\">";
        echo "Pagina Avanti[/url]";
      } 
    }
    
    
    // Chiudo la connessione ad DB
    mysql_close($conn);
    ?>

  2. #2
    Up...

  3. #3
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    C'è una cosa fondalmentalmente sbagliata qui:

    $rs = mysql_query("SELECT * FROM jos_comprofiler LIMIT $first, $x_pag");
    $nr = mysql_num_rows($rs);
    if ($nr != 0){
    for($x = 0; $x < $nr; $x++){
    $row = mysql_fetch_assoc($rs);
    echo "<table><tr>";
    echo "<td>" . $row['firstname'] . "</td>";
    echo "<td>" . $row['lastname'] . "</td>";
    echo "<td>" . $row['cb_camicia'] . "</td>";
    echo "</tr>";

    echo "</table>";


    }
    }else{
    echo "Nessun record trovato!";
    }
    I tag che costruiscono la tabella devono essere fuori dal ciclo: il meccanismo logico è
    1. creo la tabella (con <table>)
    2. ci metto gli header che voglio (con <th></th>)
    3. ciclo le varie righe (<tr> e <td>)
    4. chiudo la tabella (</table>)



    Poi altra domanda: É possibile creare un sondaggio con la possibilità di sapere anche chi ha votato e cosa ha votato?
    Si, è possibile. Non credo ci sia qualcosa di pronto, ma la cosa è assolutamente fattibile.

    Devi avere un tabella eventi collegata ad una tabella che lega l'evento agli utenti e che registra la loro risposta.
    Niente di particolarmente impossibile, ma ci si deve lavorare un po'

  4. #4
    grazie, ho provato a sistemare il file, ma mi risulta impossibile creare la struttura della tabella nel modo che voglio perchè i record vengono sempre in verticale e a me mi servirebbero anche in orizzontale. Sai come posso fare?

  5. #5
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    com'è fatta la tua tabella?

  6. #6
    Allora, io ho una tabella jos_comprofiler dove all'interno ho inserito diverse persone con diverse dotazioni.

    Tutti i record sono questi:


    id user_id firstname middlename lastname hits message_last_sent message_number_sent avatar avatarapproved approved confirmed lastupdatedate registeripaddr cbactivation banned banneddate unbanneddate bannedby unbannedby bannedreason acceptedterms website location occupation interests company address city state zipcode country phone fax cb_habitconevgradigallonianzespalline cb_giletpannobianco cb_camicia cb_cravattanera cb_culottebianca cb_ghette cb_scarpeconfibbia cb_bicornoconcarote cb_shako cb_conpomponperlaciefusilierbleuciel cb_conplumet12 cb_raquettescolorespecialit cb_bonnet cb_colbacco1 cb_fucileanix cb_baionetta cb_briquet123 cb_dragonaperbriquet123 cb_bandolieracongiberna cb_bandolieraperbriquetebaionetta123 cb_vestemanches cb_pantalonitela cb_pantalonirepubblicani4 cb_giletrepubblicano4 cb_cappotto cb_coprishako cb_zaino cb_borraccia cb_stoviglie cb_bisacciatela cb_tendalanterna cb_brandinapagliericcio cb_habitconevgradigallonianzespalline1 cb_culottesbianche cb_bandoliera cb_bandoliera2 cb_pantaloni cb_gilet cb_copri cb_bisaccia cb_tenda cb_brandina cb_altroequipaggiamento

    Ora se uso il codice sopra postato, anche se cambio la disposizione della tabella e sposto righe e colonne il risultato non cambia.

    Infatti se uso questi richiami nel file php
    . $row['cb_camicia'] .
    , il file mi mostra in cascata tutti i record mentre a me servirebbe creare una semplice tabella come questa. Dovrei mostrare i dati camicia in colonna, poi bandoliera in colonna ecc.....però lasciando a sinistra i nomi di chi possiede quelle dotazioni. Secondo te è fattibile? Posso anche passarti i dati se vuoi dare un'occhiata al database


    ................camicia bandoliera brandina ecc.......
    Peppino.......... 1 ......... 0 ......... 1
    Giovanni ........... 0.......... 1............ 1
    Antonietta ......... 0 ........... 1......... 1
    Marcantonio ............ 1 ......... 1 ........ 0........

  7. #7
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Azzardo una soluzione:


    Codice PHP:
    if ($nr != 0){
    echo 
    "<table><tr>";
    for(
    $x 0$x $nr$x++){
    $row mysql_fetch_assoc($rs);
    echo 
    "<td>" $row['firstname'] . "</td>";
    echo 
    "<td>" $row['lastname'] . "</td>";
    echo 
    "<td>" $row['cb_camicia'] . "</td>";
    echo 
    "<td>" $row['cb_bandoliera'] . "</td>";
    echo 
    "<td>" $row['cb_brandina'] . "</td>";
    echo 
    "</tr>";
    }
    echo 
    "</table>"

  8. #8
    Cavolo grazie. Funzionaaaaaaaaaa!

    Ora posso approfittare della tua bontà?

    Sai se è possibile creare un sondaggio con la possibilità di sapere anche chi ha votato e cosa ha votato? Online non esiste proprio niente già precompilato?




    esempio:


    Partecipi al prossimo evento?


    Si Giulio, Marco, Giacomo
    No Camillo, Antonio
    forse Massimo, Antonio
    Al 50% Marianna
    Al 25%

  9. #9
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Sono contento che funzioni.

    Per il tuo sondaggio... mi dispiace, ma non è una cosa che si fa in 2 minuti: è un lavoro vero e proprio.

  10. #10
    mmmmmmm capisco, grazie.

    provo a cercare qualcosa a pagamento.

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.