Visualizzazione risultati 1 fino 13 di 13

Discussione: numerazione progressiva righe tabella

  1. #1
    Guest

    Predefinito numerazione progressiva righe tabella

    salve ho un piccolo problema con il conteggio progressivo di alcune dati estratti da un file csv e visualizati in tabella tramite array...
    mi spiego meglio io voglio che ad ogni riga sia presente la numerazione progressiva ma non ci sono riuscito o almeno in parte dato che mi conta anche la prima riga quella dei titoli... vi posto i codici e i risultati..
    Codice PHP:
    <?php

    print "<table border=3 width=50% align=center bgcolor=#FFFF99 bordercolor=red >";
    $fd= fopen ("data.csv", "r");
    $x=0;
    while (!
    feof ($fd))
    {
    $riga=fgets($fd, 4096);
    if(
    $riga!="")
    {
    $arr=split('"', $riga);
    print
    "<tr>";
    print
    "<td>".$arr[7]."</td>"; //colonna nome
    print "<td>".$arr[9]."</td>";//colonna cognome
    print "<td>".$arr[17]."</td>";//Categoria
    print "<td>".$arr[15]."</td>";//colonna nick
    print "<td>".$arr[13]."</td>";//ASD
    print "</tr>";
    $x++;
    }
    }
    print
    "</table>";
    fclose($fd);

    ?>
    e questo e il risultato..


    Codice PHP:
    <?php

    print "<table border=3 width=50% align=center bgcolor=#ffff99 bordercolor=red >";
    $fd = fopen("data.csv", "r");
    $x = 0;
    $n = n;
    $conta = 0;
    while (!
    feof($fd))
    {
    $riga = fgets($fd, 4096);
    if (
    $riga != "")
    {
    $arr = split('"', $riga);
    print
    "<tr>";
    print
    "<td>" . $n . "</td>";
    print
    "<td>" . $conta++ . "</td>";
    print
    "<td>" . $arr[7] . "</td>"; //colonna nome
    print "<td>" . $arr[9] . "</td>"; //colonna cognome
    print "<td>" . $arr[17] . "</td>"; //categoria
    print "<td>" . $arr[15] . "</td>"; //colonna nick
    print "<td>" . $arr[13] . "</td>"; //asd
    print "</tr>";
    $x++;
    }
    }
    print
    "</table>";
    fclose($fd);

    ?>
    e questo e il risultato..
    come vedete o risolto ma in parte dato che mi conta la prima vuota e la seconda con i titoli nome,cognome ecc.
    Ultima modifica di dreadnaut : 17-08-2012 alle ore 13.15.57 Motivo: + indentazione

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    E' probabile che la prima riga del file sia "quasi vuota", cioé contenga solo uno spazio o due. Questo fa passare il controllo $riga != "" e la riga viene mostrata e contata vuota.

    Prova eliminando gli spazi superflui con trim() e cambiando l'if in if ($riga), per controllare che non sia vuota:

    Codice PHP:
    while (!feof($fd))
    {
    $riga = trim(fgets($fd, 4096));
    if (
    $riga)
    {
    Nota che per i file .csv c'è la comoda funzione fgetcsv() già pronta.
    Ultima modifica di dreadnaut : 17-08-2012 alle ore 13.20.16

  3. #3
    Guest

    Predefinito

    grazie.. ho provato cosi ma il risultato e lo stesso... il file csv no ha righe vuote ma racchiude fra " " ID e i dati
    Ultima modifica di sniper5 : 17-08-2012 alle ore 13.29.51

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Boh, in entrambe le immagini che hai postato c'è una riga vuota, all'inizio della tabella. Nella prima immagine non contiene celle (probabilmente perché ogni riga che aggiunge un <td> da errore), mentre nella seconda contiene almeno i campi con il numero di riga.

    Aggiungi un error_reporting(E_ALL); all'inizio dello script e probabilmente ne visualizzerai un mezza dozzina. Correggi quelli, e passa a fgetcsv() così eviti problemi di virgolette-non-virgolette.

  5. #5
    Guest

    Predefinito

    forse o capito dove sta il problema.. ma non riesco a risolverlo il file csv in realta e un file con estensione php e come prima linea per protezzione ce questa linea di codice <?php exit(); ?>
    e questa credo interpreti come linea vuota... ma come risolvo?

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Saltandola?

    Codice PHP:
    if ($conta == 0)
    continue;

  7. #7
    Guest

    Predefinito

    grazie per il tuo aiuto ma non ne esco a capo non sono una cima in questo...forse facciamo prima se ti passo pagina e file php contenente il csv
    http://www.2shared.com/file/G1DkELbx/lista2.html

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Le due righe che ho scritto sopra, le metti all'interno del ciclo while, subito dopo la riga fgets che legge dal file. Così leggi una riga, ma se è la prima non la processi, e continui con le altre.

  9. #9
    Guest

    Predefinito

    Lo fatto ma non restituisce niente..

  10. #10
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Colpa mia, in effetti mi son dimenticato di spostare l'incremento:

    Codice PHP:
    while (!feof($fd))
    {
    $riga = fgets($fd, 4096);

    if (
    $conta++ == 0)
    continue;

    if (
    $riga != "")
    {
    $arr = split('"', $riga);
    print
    "<tr>";
    print
    "<td>" . $n . "</td>";
    print
    "<td>" . $conta . "</td>";
    print
    "<td>" . $arr[7] . "</td>"; //colonna nome
    Nota che l'ho tolto dalla print più in basso.

  11. #11
    Guest

    Predefinito

    grazie ci siamo quasi e sparita la prima riga vuota.. ma mi conta ancora la prima riga... dei titoli
    Nome cognome ecc
    ed inizia da 2,3 e via dicendo...
    Ultima modifica di sniper5 : 17-08-2012 alle ore 20.16.34

  12. #12
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    -sigh- e stampare nella pagina ($conta - 1)? Oppure partire da -1 nel conteggio?

  13. #13
    Guest

    Predefinito

    avevo gia provato a dare un -1 ma dopo mi compare la cella vuota e cmq parte sempre contando la prima riga dei Titoli

Regole di scrittura

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