Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    utilizzare ciclo if per inserire segni di punteggiatura

    Per favore potete dirmi se è una cosa realizzabile quella che vorrei fare?

    ho bisogno di visualizzare i risultati di una select mysql tratti da una stessa tabella e separati da virgole o altro, esempio:

    Hobby: pallanuoto, sci, calcetto e rubamazzetto.

    il mio problema è che il numero delle voci risultanti sono variabili da utente a utente perchè uno può avere un solo hobby altri due o più.

    Come posso fare per dire a php se sono due voci inserisci una "e" tra le due voci, se sono tre o più inserisci una virgola dopo la prima e la "e" dopo la penultima, ecc. imagino un ciclo if ma come stabilisco le condizioni?


    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2014
    residenza
    Venezia
    Messaggi
    66
    ...conta il numero degli hobby...
    ...nel ciclo che inserisce le virgole inserisci il controllo che verifica se sei all'ultimo hobby e, in quel caso, inserisci la congiunzione "e"...

  3. #3
    Con explode() puoi ottenere le singole voci e con count() il loro numero. A questo punti puoi ciclare sull'array inserendo una virglola ad ogni ciclo ed una e dopo la penultima voce.

    P.S.
    Preferisco soprassedere sulla struttura di un DB che contiene valori separati da virgole.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Intervengo solo per una puntualizzazione, if/else non è un ciclo, è un'istruzione condizionale.

  5. #5
    tanto per esercitarti risolvi il problema in max 2 righe di codice
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    tanto per esercitarti risolvi il problema in max 2 righe di codice
    Codice PHP:
    $text 'pallanuoto, sci, calcetto, rubamazzetto';

    echo 
    preg_replace('/(.+), (.+?)/i''$1 e $2'$text); 

    Una sola riga...ho vinto qualchecosa?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Quote Originariamente inviata da satifal Visualizza il messaggio
    Codice PHP:
    $text 'pallanuoto, sci, calcetto, rubamazzetto';

    echo 
    preg_replace('/(.+), (.+?)/i''$1 e $2'$text); 

    Una sola riga...ho vinto qualchecosa?
    una birra cmq era per far esercitare il tizio -_-
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    una birra
    In quanto produttore artigianale, nella birra mi ci potrei fare il bagno, ma va bene lo stesso...io segno
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Quote Originariamente inviata da satifal Visualizza il messaggio
    In quanto produttore artigianale, nella birra mi ci potrei fare il bagno, ma va bene lo stesso...io segno
    ecco bravo allora offrine una te di birra che mi piace quella artigianale :F :F
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    una birra cmq era per far esercitare il tizio -_-
    Visto che dall'avatar si dichiara "tettona" suppongo sia "la tizia"

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.