Visualizzazione risultati 1 fino 9 di 9

Discussione: [html][mysql] Richiamare valori (e mostrarli in tabella)

  1. #1
    Guest

    Predefinito [html][mysql] Richiamare valori (e mostrarli in tabella)

    Salve ragazzi,
    nella realizzazione del mio sito web ho riscontrato un problema che non riesco a risolvere, cercherò di essere il più sintetico possibile dandovi più dettagli possibili.

    Problema: Come faccio a richiamare nella pagina classifica.php solo i primi 10 valori contenuti nel database in una tabella? (vedi screenshot di esempio)
    Ed in particolare, come faccio a far visualizzare la classifica solo se una persona ha effettuato il LOGIN? Però solo la classifica! e non tutta la pagina!(vedi esempio)

    Dati
    Nome Database: webnet
    (vabbè di solito includo il file config.php)

    Nome Tabella: Utenti

    Campi: Nickname || Punti|| Data registrazione

    Classifica.php:

    Codice PHP:
    <!DOCTYPE html><!-- HTML5 -->

    <
    html lang="it" dir="ltr">

    <
    head>

    <
    meta charset="utf-8" />
    <!--[if
    IE]><meta http-equiv="ImageToolbar" content="False" /><![endif]-->
    <
    meta name="author" content="Pierpaolo W." />

    <
    link rel="stylesheet" type="text/css" href="style/reset.css" media="screen,print" />
    <
    link rel="stylesheet" type="text/css" href="style/print.css" media="print" />
    <
    link rel="stylesheet" type="text/css" href="style/style.css" media="screen,print" />
    <
    link rel="stylesheet" type="text/css" href="style/template.css" media="screen" />
    <
    link rel="stylesheet" type="text/css" href="style/menu.css" media="screen" />
    <!--[if
    lte IE 7]><link rel="stylesheet" type="text/css" href="style/ie.css" media="screen" /><![endif]-->
    <
    script type="text/javascript" src="res/swfobject.js"></script>
    <script type="text/javascript" src="res/jquery.js?1939"></script>
    <script type="text/javascript" src="res/pippoengine.js?1939"></script>
    <script type="text/javascript" src="res/pippocartengine.js?1939"></script>
    <script type="text/javascript" src="res/l10n.js?1939_634888520959568907"></script>
    <script type="text/javascript" src="res/x5settings.js?1939_634888520959568907"></script>
    <link rel="icon" href="favicon.ico" type="image/vnd.microsoft.icon" />
    <link rel="apple-touch-icon" href="http://www.jackp8cento.altervista.org/res/logo.png" />



    <title>Classifica </title>

    <link rel="stylesheet" type="text/css" href="pcss/classifica.css" media="screen" />


    </head>

    <body>

    <div id="imPage">

    <div id="imHeader">

    <h1 class="imHidden">Classifica </h1>


    <div style="position: absolute; top: 68px; left: 16px; width: 730px; height: 95px; overflow: hidden;"><script type="text/javascript">
    /* <![CDATA[ */
    document.write('<s'+'cript type="text/javascript" src="http://ad.altervista.org/js.ad/size=728X90/r='+new Date().getTime()+'"><\/s'+'cript>');
    /* ]]> */
    </script></div>

    </div>

    <a class="imHidden" href="#imGoToCont" title="Salta il menu di navigazione">Vai ai contenuti</a>

    <a id="imGoToMenu"></a><p class="imHidden">Menu principale:</p>

    <div id="imMnMn" class="auto">

    <ul class="auto">
    <li id="imMnMnNode0" class="imMnMnFirst">
    <a href="index.php">
    <span class="imMnMnFirstBg">
    <span class="imMnMnTxt"><span class="imMnMnImg"></span>Home Page</span>
    </span>
    </a>
    </li>
    <li id="imMnMnNode3" class="imMnMnMiddle">
    <a href="registrati.php">
    <span class="imMnMnFirstBg">
    <span class="imMnMnTxt"><span class="imMnMnImg"></span>Registrati</span>
    </span>
    </a>
    </li>
    <li id="imMnMnNode5" class="imMnMnMiddle imMnMnCurrent">
    <a href="classifica.php">
    <span class="imMnMnFirstBg">
    <span class="imMnMnTxt"><span class="imMnMnImg"></span>Classifica</span>
    </span>
    </a>
    </li>
    <li id="imMnMnNode6" class="imMnMnMiddle">
    <a href="risorse-utili.php">
    <span class="imMnMnFirstBg">
    <span class="imMnMnTxt"><span class="imMnMnImg"></span>Risorse Utili</span>
    </span>
    </a>
    </li>
    <li id="imMnMnNode7" class="imMnMnLast">
    <a href="info.html">
    <span class="imMnMnFirstBg">
    <span class="imMnMnTxt"><span class="imMnMnImg"></span>Info</span>
    </span>
    </a>
    </li>
    </ul><script type="text/javascript">x5engine.imQueue.push_init("x5engine.utils.imPreloadImages(['menu/index_h.png','menu/registrati_h.png','menu/classifica_h.png','menu/risorse-utili_h.png','menu/info_h.png','res/imLoad.gif','res/imClose.png'])",false);</script>


    </div>

    <div id="imContentGraphics"></div>

    <div id="imContent">

    <a id="imGoToCont"></a>
    <h2 id="imPgTitle">Classifica</h2>
    <div style="width: 1040px; float: left;">
    <div id="imCell_4" class="imGrid[0, 0]"><div id="imCellStyleGraphics_4"></div><div id="imCellStyle_4"><div id="imTableObject_4"><table class="imB0">
    <tr style="height: 20px; *height: 11px;">
    <td class="imW344 imVt"><p style="text-align: left;"><span class="ff1 fs18"> jnhjn</span></p></td>
    <td class="imW344 imVt"><span class="fs20"> </span><p style="text-align: left;"><span class="ff1 fs18">regreg</span></p></td>
    <td class="imW344 imVt"><span class="fs20"> </span><p style="text-align: left;"><span class="ff1 fs18">56</span></p></td>
    </tr>
    <tr style="height: 20px; *height: 11px;">
    <td class="imW344 imVt"><p style="text-align: left;"><span class="ff1 fs18">egrg</span></p></td>
    <td class="imW344 imVt"><span class="fs20"> </span><p style="text-align: left;"><span class="ff1 fs18">rgrege</span></p></td>
    <td class="imW344 imVt"><span class="fs20"> </span><p style="text-align: left;"><span class="ff1 fs18">689</span></p></td>
    </tr>
    </table></div></div></div>
    </div>
    <div style="width: 1040px; float: left;">
    <div id="imCell_5" class="imGrid[1, 1]"><div id="imCellStyleGraphics_5"></div><div id="imCellStyle_5"><div class="imHTMLObject" style="height: 450px; overflow: hidden; text-align: center;"><script type="text/javascript"> var av_gbook_lang = 'it'; </script>
    <script type="text/javascript" src="http://tl.altervista.org/js/guestbook.js"></script></div></div></div>
    </div>

    <div id="imBtMn"><a href="index.php">Home Page</a> | <a href="registrati.php">Registrati</a> | <a href="classifica.php">Classifica</a> | <a href="risorse-utili.php">Risorse Utili</a> | <a href="info.html">Info</a> | <a href="imsitemap.html">Mappa generale del sito</a></div>

    <div class="imClear"></div>

    </div>

    </div>

    <div id="imFooterBg">

    <div id="imFooter">



    </div>

    </div>

    <span class="imHidden"><a href="#imGoToCont" title="Rileggi i contenuti della pagina">Torna ai contenuti</a> | <a href="#imGoToMenu" title="Naviga ancora nella pagina">Torna al menu</a></span>



    </body>

    </html>
    Perpiacere Aiutatemiiiiii!!

  2. #2
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    Ciao, per il primo problema c'è la clausola "LIMIT" di SQL, mentre il secondo lo fai tramite PHP, stampando il codice selezionato. Ti scrivo un piccolo pseudo-codice:
    Codice PHP:
    <?php

    if( utente_registrato )
    {

    ?>
    codice html classifica
    <?php

    }
    else
    {

    ?>
    codice html normale
    <?php

    }

    ?>
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  3. #3
    Guest

    Predefinito

    Ciao grazie per avermi risposto,
    per quanto riguarda il primo problema diciamo che ho risolto, e sembra che funzioni:

    Codice PHP:
    $contenuti=mysql_query("SELECT * FROM users ORDER BY punti DESC LIMIT 0,10");
    while(
    $leggo=mysql_fetch_assoc($contenuti)){
    echo
    $leggo['username']." ha fatto ".$leggo['punti']." punti! Alle ore ".$leggo['orario']." del ".$leggo['datalogin']."<br/>";
    }
    ?>
    Ma il problema è che non riesco a mettere i dati all'interno di una tabella in ordine centrati(come nell'immagine di esempio), quando scrivo il codice mi da vari errori! nn sò come integrarlo per bene con l'html senza che mi dia errori!
    -----------
    Per quanto riguarda il secondo problema provà a scrivere il codice della pagina classifica.php in base allo schema che mi ha fatto, vedo un pò e ti faccio sapere!

  4. #4
    Guest

    Predefinito

    OK, per quanto riguarda il problema della verifica del login appena ho tempo provo, e vedo che ne esce fuori!
    LA CLASSIFICA L'HO CREATA CON UN Pò DI PAZIENZA CI SONO RIUSCITO!

    Ma ho riscontrato un altro piccolo problema! :S


    Esempio: Io ho estratto i valori in base al voto che hanno in ordine decrescente
    fin qui tutto ok...
    Ma come faccio ad assegnare un ID in ordine crescente dal voto più alto al più basso tenendo in considerazione tutti i voti presenti nel database?? visto che l'ID salvato nel database è completamente un altra cosa ed è un valore che in questo caso nn mi serve

    Esempio dati nel database:
    ID || nome|| Voto
    1 || A|| 2
    2 || B|| 1
    2 || C|| 9

    ESEMPIO CLASSIFICA:
    POSIZIONE||NOME|| VOTO
    1 || c|| 9
    2 || a|| 2
    3 || b|| 1

    P.s ho già cercato per il forum ma non ho trovato nulla!
    Ultima modifica di jackp8cento : 21-11-2012 alle ore 18.18.11

  5. #5
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    Semplice: non lo usi. Ti ricrei l'id: basta incrementarlo di 1 ogni volta che stampi un risultato. Nel codice che segue l'ho inserito ma non lo sto stampando.
    Codice PHP:
    $contenuti=mysql_query("SELECT username, punti FROM users ORDER BY punti DESC LIMIT 0,10");

    $id = 0;

    while(
    $leggo=mysql_fetch_assoc($contenuti)){
    $id++;
    echo
    $leggo['username']." ha fatto ".$leggo['punti']." punti! Alle ore ".$leggo['orario']." del ".$leggo['datalogin']."<br/>";
    }
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  6. #6
    Guest

    Predefinito

    Grazie 1000 ho risolto!! GENTILISSIMO! :D
    solo un ultima cosa! e poi volendo per me si può pure chiudere il topic (ne aprirò in caso di altri problemi)

    mettiamo caso che voglio stampare questo id per un utente che ha appena effettuato il login, si troverà la scritta : "ciao "utente" il tuo ID è "valore"

    come dovrò fare? come associo l'username dell'utente che affettuato il login all'ID generato per la classifica?

    facciamo finta che il nome utente sia Alpha come faccio a trovare l'id associato? Ho provato con WHERE ma riesco solo a contare il numero totale di id! nn mi viene in mente nulla :'(
    ovviamente

  7. #7
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    Hai 3 modi diversi per farlo.

    1) Lo calcoli mentre ricavi la classifica: risulta conveniente se devi stamparlo nella stessa pagina in cui stampi anche la classifica, altrimenti è solo uno spreco, visto che ti serve un'unica entry.
    Ecco il codice (ho messo la classifica in un vettore anziché stamparla, nel caso tu voglia stampare prima il messaggio di benvenuto con l'id e poi la classifica):

    Codice PHP:
    $contenuti=mysql_query("SELECT username, punti FROM users ORDER BY punti DESC LIMIT 0,10");

    $id = 0;
    $calcola_id = true;
    $classifica = array();

    while(
    $leggo=mysql_fetch_assoc($contenuti)){
    if(
    $calcola_id)
    $id++;
    if(
    $username == $leggo['username'])
    $calcola_id = false;

    $classifica[] = $leggo['username']." ha fatto ".$leggo['punti']." punti! Alle ore ".$leggo['orario']." del ".$leggo['datalogin']."<br/>";
    }
    2) Lo calcoli direttamente con questa query. Ti propongo due soluzioni, nel caso tu voglia gestire o no il parimerito. ($username è la variabile dove hai memorizzato lo username dell'utente registrato.)

    Senza parimerito:
    Codice PHP:
    $contenuti = mysql_query("SELECT count(*) AS id
    FROM users
    WHERE punti >= (
    SELECT punti
    FROM users
    WHERE username = '"
    . $username . "'
    )"
    );

    $leggo = mysql_fetch_assoc($contenuti);
    $id = $leggo['id'];
    Con parimerito:
    Codice PHP:
    $contenuti = mysql_query("SELECT count(*) AS id
    FROM users
    WHERE punti > (
    SELECT punti
    FROM users
    WHERE username = '"
    . $username . "'
    )"
    );

    $leggo = mysql_fetch_assoc($contenuti);
    $id = $leggo['id'];

    $contenuti = mysql_query("SELECT username
    FROM users
    WHERE punti = (
    SELECT punti
    FROM users
    WHERE username = '"
    . $username . "'
    )
    ORDER BY username"
    );

    while(
    $leggo = mysql_fetch_assoc($contenuti)){
    $id++;
    if(
    $username == $leggo['username'])
    break;
    }
    3) Aggiungi nella tabella un campo 'id' che contiene già il valore che cerchi, che ricalcolerai (per ogni entry) ogni volta che inserisci o aggiorni un record nella tabella. È conveniente solo se modifichi la tabella poche volte, ma essendo una classifica immagino che non rimanga invariata a lungo. Te l'ho indicato solo per completezza.
    Ultima modifica di Luffio : 22-11-2012 alle ore 14.29.56
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  8. #8
    Guest

    Predefinito

    OK, perfetto! ho utlizzato il secondo metodo (senza parimerito!) sia per la home page, e sia nella stessa pagine della classifica, mi è stato più semplice comprendere il codice!
    Anche se inizialmente mi dava un errore con session_start(), ho risolto scrivendo il codice partendo dal php:

    <?php
    include("config.php");
    session_start();
    $contenuti = mysql_query("SELECT count(*) AS id.........


    mentre prima iniziavo così:

    <html>
    <body>
    <?php
    include("config.php");
    session_start();
    $contenuti = mysql_query("SELECT count(*) AS id.........


    Non ho capito il perchè... ma va bene così!
    Cmq ti ringrazio ancora per l'aiuto sei stato gentilissimo! Continuerò la realizzazione del sito web fino a quando non riscontrerò altri problemi! GRAZIE 1000!! :D

  9. #9
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    Lieto di esserti stato utile ;) alla prossima!
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •