Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    14

    Ultimo carattere ciclo while

    Eseguo una query select in questo modo:

    [PHP]

    $sql_result = mysql_query($sql,$connection)
    or die("Impossibile eseguire la query.");

    while ($row = mysql_fetch_array($sql_result)) {


    echo "["{$row[indirizzo]}","{$row[latitude]}","{$row[longitude]}",{$row[link]}],";


    } /PHP]

    Il problema è che i valori sono separati da una virgola finale, ma se metto la virgola alla fine mi compare anche dopo l'ultima riga della select e mi da errore. Come faccio a togliere l'ultima virgola dall'ultima riga della query select?

    Grazie a tutti

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503

    Re: Ultimo carattere ciclo while

    Codice PHP:

    $sql_result 
    mysql_query($sql,$connection)
        or die(
    "Impossibile eseguire la query.");

    $stringa '';
    while (
    $row mysql_fetch_array($sql_result))
    {
        
    $stringa .= "["{$row[indirizzo]}","{$row[latitude]}","{$row[longitude]}",{$row[link]}],"
    }

    echo 
    substr($stringa,0,-1); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    14
    Ti ringrazio della gentile risposta, questo è quello che avevo provato. Il problema è che in questo modo la virgola viene eliminata da tutti le righe della query select
    La devo togliere solo alla fine dell'ultima riga -risultato select-.

    Prima riga,
    seconda riga,
    terza riga,
    ultima riga

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    14
    Scusami, ti ho detto una stupidata. La virgola viene correttamente eliminata dall'ultimo risultato, il problema è che i record vengono quadruplicati

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    14
    ...e le virgole finali vengono tolte ad una riga si e una no.

    l'anomalia del numero dei risultati è questa:

    riga 1
    riga 2
    riga 3

    poi inzia di nuovo

    riga 1
    riga 2
    riga 3
    riga 4

    continua incrementando sempre di 1

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Scrivimi la query che esegui ed un esempio di come deve essere l'output corretto.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    14
    La query che eseguo è quella che mi hai scritto tu, l'output corretto dovrebbe essere cosi:



    [\\"51.98482\",\"32.71820\",2,\",201],
    [\"51.98482\",\"32.71820\",2,\",202],
    [\"51.98482\",\"32.71820\",2,\",203],
    [\"51.98482\",\"32.71820\",2,\",204],
    [\"51.98482\",\"32.71820\",2,\",205] -ultima riga senza virgola finale

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Il codice che ti ho scritto fa esattamente questo.
    Hai notato che dentro il while ho messo
    $stringa .= "..."

    e non un echo? Quello l'ho messo solo alla fine e il substr elimina solo l'ultimo carattere della stringa contenuta in $string, ovvero solo l'ultima virgola, non elimina nient'altro.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    14
    Si è vero, toglie solo l'ultima virgola. Il problema che riscontro adesso peró è che i risultati della query vengono duplicati in questo modo:

    Ho cinque record nella tabella e me ne restituisce 14!!


    Record 1,
    Record 2 -niente virgola-
    Record 1,
    Record 2,
    Record 3 -niente virgola-
    Record 1,
    Record 2,
    Record 3,
    Record 4 -niente virgola-
    Record 1,
    Record 2,
    Record 3,
    Record 4,
    Record 5 -niente virgola-

    Dove sbaglio?

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Non nel blocco di codice che hai postato.
    Questo while è dentro ad un altro ciclo?
    Posta tutto il codice.

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.