Visualizzazione risultati 1 fino 10 di 10

Discussione: visualizza dati in due passaggi

  1. #1
    Guest

    Red face visualizza dati in due passaggi

    Ciao a tutti.
    Oggi ho questo problemino:
    dopo aver fatto la mia query (su due tabelle del db), visualizzo alcuni dati di un record.
    Però quando poi vado ad elencarli tutti con il ciclo while, mi manca un dato.
    Spero di essermi spiegato.
    Metto la parte di listato coinvolto nell'operazione per maggiore chiarezza.
    Codice PHP:
    $sql="SELECT id_libri,scaffale,titolo,ksprestito,giorno, ksprestito, id_utente, indirizzo, tel, email, documento, numero FROM libri, utenti WHERE ksprestito=id_utente AND ksprestito='$ute' ";
    $res=mysql_query($sql);
    $row = mysql_fetch_assoc($res);
    // dalla tabella utenti estraggo alcuni dati informativi sull'utente in questione
    echo ' <table>
    <tr><td><b>INDIRIZZO </b></td><td>: </td><td> &nbsp; &nbsp; '
    .$row['indirizzo'].'</td></tr>
    <tr><td><b>TELEFONO </b></td><td>: </td><td> &nbsp; &nbsp; '
    .$row['tel'].'</td></tr>
    <tr><td><b>EMAIL </b></td><td>: </td><td> &nbsp; &nbsp; '
    .$row['email'].'</td></tr>
    </table>'
    ;
    // elenco in un'altra tabella i libri in possesso all'utente ricercato
    if(mysql_num_rows($res))
    {
    echo
    '
    <table id="zebra" >
    <thead>
    <tr>
    <th scope="col" >Codice Libro</th>
    <th scope="col" >Scaffale</th>
    <th scope="col" >Titolo</th>
    <th scope="col" >Data</th>
    <th scope="col" > </th>
    </tr>
    </thead>
    <tbody> '
    ;

    while (
    $row = mysql_fetch_array($res))
    {
    echo
    '<tr >
    <FORM method="POST" action="reso_libro.php">
    <td>'
    . $row['id_libri'] . '<input type="hidden" name="idL" value="'.$row['id_libri'] .'"/></td>
    <td>'
    . $row['scaffale'] . '</td>
    <td>'
    . $row['titolo'] . '</td>
    <td >'
    . $row['giorno'] . '</td>
    <td align="right"><INPUT type="submit" class="css_button2" value="DA RESTITUIRE"></td>
    </FORM>
    </tr>'
    ;
    (Ho escluso il resto del listato per non fare un papiro troppo lungo.)
    In pratica, se l'utente ha tre libri in prestito, nella tabella ne compaiono solo due.
    Come potrei risolvere ?
    Grazie a tutti

  2. #2
    Guest

    Predefinito

    Piero ma che versione di php stai usando?

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Elimina la terza riga:
    Codice PHP:
    $row = mysql_fetch_assoc($res);
    Ciao!

  4. #4
    Guest

    Predefinito

    Alemoppo ma a te funziona mysql? a me no, solamente mysqli, sapevo che la libreria mysql era stata deprecata...se eseguo la query con mysql_query a me stampa un bel NULL :D

  5. #5
    Guest

    Predefinito

    cioè se uso un ciclo while funziona solamente se scrivo così....Anche se i cicli while sinceramente li sconsiglio ed uso un foreach con il while devo scriverte così

    Codice PHP:
    $sql = ("SELECT rowid,Script_id,Data_inizio,Data_fine,Descrizione,User_id FROM Log ");

    $risultato = mysqli_query($db, $sql);

    while (
    $riga = mysqli_fetch_array($risultato)) {
    echo
    $riga["rowid"];
    echo
    $riga["Script_id"];
    echo
    $riga["Data_inizio"];
    echo
    $riga["Data_fine"];
    echo
    $riga["Descrizione"];
    echo
    $riga["User_id"]."<br>";
    }
    Con il foreach che è quello che uso per la maggiore

    Codice PHP:


    $sql
    = ("SELECT rowid,Script_id,Data_inizio,Data_fine,Descrizione,User_id FROM Log ");

    //$risultato = mysqli_query($db, $sql);

    foreach ($db->query($sql) as $risultato){
    echo
    $risultato["rowid"];
    echo
    $risultato["Script_id"];
    echo
    $risultato["Data_inizio"];
    echo
    $risultato["Data_fine"];
    echo
    $risultato["Descrizione"];
    echo
    $risultato["User_id"]."<br>";
    }

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Non so se mi funziona: l'ultima volta che ho testato uno script con le mysql_, funzionava correttamente. Penso però che dipenda dalla versione PHP utilizzata.

    Nel tuo ultimo utilizzo con foreach(), sei sicuro al 100% che non esegue la query ogni volta? Cioè ok, penserei che la query viene eseguita solo la prima volta, poi messo il risultato in una variabile temporanea, ma non ne sarei sicuro al 100%. Bisognerebbe provare.

    Ciao!

  7. #7
    Guest

    Predefinito

    Io uso Aptana(che è gratis, un buonissimo ide con connessione ftp tutto quello che serve, usa anche linguaggi python, ruby) ed ho impostato il progetto a php5.4.x la versione 5.5 devono ancora rilasciarla, si si con il foreach esegue la query in maniera sempre corretta cioè nel mio progetto ho messo un bottone che al click del bottone apre la tabella(mostra tabella) e funziona regolarmente....Forse però dato che ho messo progetto a php 5.4.x non mi prenderà la connessione con mysql....Comunque si funziona molto bene con foreach, aggiorna anche se cancelli dei record direttamente dal phpmyadmin quello scorre tutta la tabella e foreach record come risultato stampa i relativi campi.
    Ciao

  8. #8
    Guest

    Predefinito

    Grazie per i mille suggerimenti.
    Ho risolto così, ho aggiunto questa riga prima del ciclo while:
    Codice PHP:
    $res=mysql_query($sql);
    Posso chiedere un'altra cosa ? Mi sono incuriosito.
    A me mysql funziona, ma se volessi passare a mysqli, dove posso attingere informazioni ?
    Considerate che non sono molto esperto e avrei bisogno di una guida semplice.
    Grazie ancora a tutti.

  9. #9
    Guest

    Predefinito

    Ciao Piero, a dire il vero tra PDO e MySqli è meglio PDO, almeno così dicono, io a lavoro uso PHP ma con connessione a DB2 quindi la parte database non la facciamo noi del web ma usiamo connessioni personalizzate, quindi non sono molto informato sul Mysqli, io lo uso per un mio progetto personale dove ho creato tabelle, join, select, una specie di agenda per tenere sotto occhio gli sviluppi del lavoro dei diversi collaboratori, utenti e amministratori, devi cambiare il modo di connetterti credo e le select etc...la connessione è

    Codice PHP:

    $mysqli
    = new mysqli('localhost','username','password','database');
    Puoi vedere in questo sito il confronto tra PDO e Mysqli e nel sito del manuale PHP trovi tutte le funzioni

    http://code.tutsplus.com/tutorials/p...use--net-24059

    confronto tra mysql , mysqli e pdo

    http://php.net/manual/en/mysqli.overview.php

    Manuale

    http://php.net/manual/en/book.mysqli.php

  10. #10
    Guest

    Predefinito

    OK. Grazie. Provo a guardarci.
    Per il mio sito su altervista che ripercussione può avere ?
    Buona giornata

Regole di scrittura

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