• User Attivo

    non riesco a stamapre il numero totale di righe

    ciao ragazzi, io ho un utente connesso che crea dei gruppi a cui aggiunge dei contatti; ora sto cercando di stamparmi tutti i contatti con che iniziano con la lettera "a" ma se ho 3 contatti invece di stamaprmi 3 mi stampa una cosa del genere:
    1
    1
    1

    però io vorrei che dia 3.

    cosa sbaglio.

    posto il codice:

    
    <?php
    //Includo i file per la connessione
    //e per la verifica del login
    require_once('connessione.php');
    require_once('verificalogin.php');
    
    
    if(!isset($_SESSION['utente'])) {
        echo 'errore';
                                     }
     else {
        $user=$_SESSION['utente'][0];
          }
          
    $query1 = "SELECT idutente FROM utente WHERE username = '$user'"; 
    $result1 = mysql_query($query1) or die("Errore nella query1:".mysql_error());  
    $riga = mysql_fetch_array($result1); 
    $idutente = $riga['idutente'];
    
    //echo $idutente;
    
    $query2 = "SELECT idgruppo FROM gruppi WHERE idutente = '$idutente'"; 
    $result2 = mysql_query($query2) or die("Errore nella query2:".mysql_error()); 
    $numerorighe = mysql_num_rows($result2);
    
    
    
         
    for($x=0; $x<$numerorighe; $x++) {                     
    
        $res = mysql_fetch_array($result2); 
        $idgruppo = $res['idgruppo'];
    
        $query3 = "SELECT idutente FROM include WHERE idgruppo = '$idgruppo'"; 
        $result3 = mysql_query($query3) or die("Errore nella query3:".mysql_error()); 
    while($riga = mysql_fetch_array($result3)) {
        
            $idutente = $riga['idutente'];
    
            $query4 = "SELECT * FROM utente WHERE idutente = '$idutente' AND nome LIKE '%A%'"; 
            $result4 = mysql_query($query4) or die("Errore nella query4:".mysql_error()); 
            $riga = mysql_fetch_array($result4); 
            $numrigh = mysql_num_rows($result4); 
            
            echo $numrigh;
            
        
    }}
        
    ?>
    
    

  • User

    Prova a sostituire select * con select count(*) in query4
    e
    $numrigh= $riga [0];


  • User Attivo

    ciao ho provato come hai detto ma nulla, non se sto uscendo fuori.uffa!

    
    $query4 = "select count(*) FROM utente WHERE idutente = '$idutente' AND nome LIKE '%A%'"; 
            $result4 = mysql_query($query4) or die("Errore nella query4:".mysql_error()); 
            $riga = mysql_fetch_array($result4); 
            $numrigh= $riga [0];
            
            echo $numrigh;
            
    
    

  • User

    Scusa, ho riguardato un attimo il codice:
    con la prima query ti trovi l'idutente partendo dal nome ;
    con la seconda ti trovi tutti i suoi gruppi ;
    con la terza, che viene fatta x volte (se i gruppi sono x) ti trova l'id di tutti gli utenti che fanno parte di questi gruppi ;
    con la quarta ti estrai a uno a uno i dati di tutti gli utenti con la 'a' che fanno parte di questi gruppi, quindi è naturale che escano uno alla volta.

    Se a te basta contare i contatti con la lettera 'a' è sufficiente portare il count e la condizione like nella terza query ed eliminare la quarta.

    Altrimenti, mi sa che non ho capito quello che vuoi fare... 🙂