Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    aiuto algoritmo per eliminare ultimo carattere...

    ciao a tutti!!

    ho un tabella di un db dalla quale estraggo la classifica marcatori con la funzione sottostante.
    Nel risultato ogni calciatore è separato da una virgola. Ma ad esempio, ho 3 calciatori che hanno fatto 3 gol, quindi il risultato sarebbe:
    codice:
    Totti (3 Roma, 1rig.) , Trezeguet (3 Juventus) , Miccoli (3 Palermo, 1 rig.) ,
    .
    Come potete vedere rimane la virgola finale... avevo pensato ad un algoritmo per togliere l'ultimo carattere da una stringa ma purtroppo la funzione per visualizzare i calciatori usa un ciclo for e la funzione x togliere l'ultima virgola funzione solo su una singola stringa... (sotto ho la funzione per togliere la virgola) ...
    Qualcuno sa darmi un consiglio? esiste un modo x bufferizzare tutto l'output da una funzione?
    ad esempio si può fare che la funzione showMarcatori() venga messa in una variabile?


    "funzione showMarcatori()"
    Codice PHP:
    function showMarcatori() {

        echo 
    '<table cellspacing="0" cellpadding="0" class="tab_res" title="Classifica Marcatori" align="center">';
        
        
    $querymax mysql_query("SELECT MAX(gol_totali) FROM marcatori_seriea");
        
    $resmax mysql_fetch_row($querymax);
        
    $maxgol $resmax[0];
        
        for(
    $i=$maxgol$i>=1$i--) {
            echo 
    '<tr class="didascalia"><td><div class="td_dati">'.$i;
            if(
    $i==1) {
                echo 
    ' GOAL';
            } else {
                echo 
    ' GOALS';
            }
            echo 
    '</div></td></tr>';
            echo 
    '<tr class="dati"><td><div class="td_dati">';
            
    $ngol mysql_query("SELECT * FROM marcatori_seriea WHERE gol_totali='$i' ORDER BY nome");
            while(
    $res mysql_fetch_assoc($ngol)) {
                echo 
    $res['nome'].' ('.$res['gol_totali'].' '.$res['squadra'];
                if(
    $res['rigori']!=0) {
                    echo 
    ', '.$res['rigori'].' rig.';
                }
                echo 
    ') ,  ';
            }
        }
        echo 
    '</div></td></tr>';
        
        
    $querymaxauto mysql_query("SELECT MAX(autoreti) FROM marcatori_seriea");
        
    $resmaxauto mysql_fetch_row($querymaxauto);
        
    $maxauto $resmaxauto[0];
        
        for(
    $i=$maxauto$i>=1$i--) {
            echo 
    '<tr class="didascalia"><td><div class="td_dati">'.$i;
            if(
    $i==1) {
                echo 
    ' AUTORETE';
            } else {
                echo 
    ' AUTORETI';
            }
            echo 
    '</div></td></tr>';
            echo 
    '<tr class="dati"><td><div class="td_dati">';
            
    $nauto mysql_query("SELECT * FROM marcatori_seriea WHERE autoreti='$i' ORDER BY nome");
            while(
    $resauto mysql_fetch_assoc($nauto)) {
                echo 
    $resauto['nome'].' ('.$resauto['autoreti'].' aut. '.$resauto['squadra'].')  ';
            }
        }
        echo 
    '</div></td></tr>';
        
        echo 
    '</table>




    '
    ;


    funzione "togliUltimaVirgola()"
    Codice PHP:
    function toglieUltimaVirgola($stringa) {
        
    $lung strlen($stringa);
        
        for(
    $i=0$i<$lung-1$i++) {
            echo 
    $stringa[$i];
        }


    grazie a tutti anticipatamente
    Per una battaglia sono sempre a disposizione

  2. #2
    premetto che non mi sono messo a leggere tutto il codice che hai postato..
    ma perché creare una propria funzione quando ne esiste una built in comoda comoda?

    rtrim($stringa , 'carattere') toglie dalla parte destra di $stringa il 'carattere' passato

    analogamente c'è ltrim (sinistra) e trim (destra e sinistra)

    cmq su php.net trovi tutte le funzioni built in per le stringhe e non solo!!!

  3. #3
    trim() la conoscevo, rtrim() e ltrim() no...

    cmq non è questo il problema...
    il problema è che estraggo i dati da un db utilizzando un ciclo for.... quindi viene visualizzato un record x volta... ed io devo togliere la virgola solo dall'ultimo ma non da tutti... avevo provato una soluzione m non funzia....
    Per una battaglia sono sempre a disposizione

  4. #4
    up please....
    Per una battaglia sono sempre a disposizione

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.