• User Newbie

    Impaginare output query su righe

    Ciao a tutti,
    scusate la banalità ma sono cotto e non connetto più. :sbav:
    Ho un problema che a voi sembrerà banale ma non rieso a formattare l'output di una query in modo che i campi restituiti si ordinino in riga invece che in colonna.
    Mi spiego meglio, ho una query di questo tipo:

    [php]//......
    $sql1= mysql_query("select * from s08c where idospite = $osp") or die (mysql_error());
    while ($row1 = mysql_fetch_array($sql1))

    {
    echo $row["nome"];
    } ?>[/php]

    L'output, ovviamente mi restituisce una colonna dove sono indicati tutti i nomi che soddisfano la query.

    Io vorrei fare in modo di ottenere i nomi uno di fianco all'altro.
    Secondo voi è possibile?
    Grazie in anticipo a tutti.


  • User Attivo

    Ciao cristianovvf,

    C'è solamente qualche piccola imprecisione.
    La funzione mysql_fetch_array restituisce un array non associativo, quindi non puoi richiamare una colonna con il suo nome, ma solo con il suo indice.
    Il secondo problema è che assegni alla riga della query il nome $row1, ma poi la richiami con $row.

    Correggi così:
    [php]//......
    $sql1= mysql_query("select * from s08c where idospite = $osp") or die (mysql_error());
    while ($row = mysql_fetch_assoc($sql1))

    {
    echo $row["nome"];
    } ?> [/php]

    Ciao,
    Luca Bartoli


  • ModSenior

    mysql_fetch_array dovrebbe darli entrambi in assenza del secondo parametro che specifichi diversamente (Di default restituisce sia come nome campo che come numero), infatti in quel modo dovrebbe funzionare.
    In ogni caso il codice che hai postato tu manda in output tutti i nomi uno dopo l'altro, se correggi la variabile come indicato da lucabartoli. Forse hai omesso qualche pezzo di codice che te li mostra in una tabella e li visualizzi differentemente per questo motivo.


  • User Attivo

    @Thedarkita said:

    mysql_fetch_array dovrebbe darli entrambi in assenza del secondo parametro che specifichi diversamente (Di default restituisce sia come nome campo che come numero)

    Vero, ho detto io una sciocchezza.
    La funzione mysql_fetch_array ha un flag opzionale per definire il tipo di array in uscita, che di default vale MYSQL_BOTH, ovvero array ordinale E associativo...

    Pardon 😉


  • User Newbie

    Grazie mille Luca e Thedarkita siete molto gentili,
    ho rimodificato la query così:
    [PHP]
    $sql1= mysql_query("select * from s08c where idospite = $osp") or die (mysql_error());
    while ($row = mysql_fetch_array($sql1))

    {
    echo "<td> . $row["nome"] . </td>;
    } ?>
    [/PHP]
    ma restituisce solo il primo valore dell'array:


  • ModSenior

    Ma tu vuoi stampare tutte le colonne della tabella per caso?


  • User Newbie

    No per carità:o.
    Voglio solo avere i record restituiti da una query impaginati in linea e non in colonna.


  • ModSenior

    [php]
    $sql1= mysql_query("select * from s08c where idospite = $osp") or die (mysql_error());
    while ($row = mysql_fetch_array($sql1))

    {
    echo "<tr><td>".$row["nome"]."</td></tr>";
    } ?>
    [/php]


  • User Newbie

    Grazie mille riuscito.
    Non mi venivano in riga perchè avevo interposto un tag <P></p> tra il parser di apertura e chiusura del ciclo while della query.
    Ancora grazie per la cortesia e la pazienza.:ciauz:

    Cris