Visualizzazione dei risultati da 1 a 2 su 2

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    36

    Modifica di un ciclo foreach

    Scusate per il titolo ma non sapevo come chiamarlo per rendere l'idea.
    Vendendo al punto: un amico mi ha aiutato a creare il seguente script (vista la sua complessitą io non so dire se sia corretto o meno, io so solo che per ora funziona ), questo script collegandosi al DB verifica i valori di 20 campi divisi su due colonne (id_membro1, id_membro2.... id_membro10 e confirm_membro1, confirm_membro2... confirm_membro10) e nel caso in cui i campi sono verificati mostra un tick verde e il valore del campo id_membro1-10, altrimenti mostra una x rossa. Fin qui tutto ok, il problema giunge quando invece del valore del campo id_membro1-10 voglio mostrare il nome associato a quel valore preso da un'altra tabella.
    L'altra tabella si chiama membri ed č strutturata in id | id_user | nome etc etc, io dovrei associare il valore di id_membro1-10 al campo id_user cosģ da mostrare il nome del membro invece che il suo id.
    Idee?

    Posto il codice:

    Codice PHP:
    <? require('db_config.php');

    echo 
    "<pre>"
    for(
    $k=1;$k<=10;$k++){     
    $n[]="id_membro".$k;     
    $c[]="confirm_membro".$k

    $nome=implode(", ",$n);
    $conferma=implode(", ",$c); 
    $query="SELECT id, $nome$conferma FROM creazione_clan WHERE id_capoclan = 6";
    var_dump($query); 
    $ris=mysql_query($query) or die (mysql_error()); 
    var_dump(mysql_num_rows($ris)); 
    /*se ti da 0 c'č qualcosa che non va nella query, cieč non trova record quindi l'errore viene prima, se >0 allora metti gli altri var_dump*/ 
    if(mysql_num_rows($ris) > 0){ //qui metti il numero di record trovati (se 0 non trovati)     
        
    while($riga =mysql_fetch_array($ris)){ //qui prova a mettere array         
            
    var_dump($riga);//se risulta posta il risultato di un record         
            
    $id=$riga['id'];          
            for(
    $k=1;$k<=10;$k++){             
                
    $nom="id_membro".$k;              
                
    $con="confirm_membro".$k;               
                  
    $la[]=$riga[$nom]."*".$riga[$con];              
                  
    //se var_dump($riga) č ok verifica $la              
                  
    var_dump($la);         
             }
    //fine for         
            
    $letto[$id]=implode("|",$la);      
         }
    //fine while     
        
    }else{     
        echo 
    "errore"

    var_dump($letto);//questo per vedere come viene l'array 
    $letto foreach($letto as $id => $val){//es pinco*1|pallo*0 ecc....         $membro=explode("|",$val);//$membro[0]=pinco*1, $membro[1]=pallo*0 ecc....     
      
    foreach($membro as $c => $val_1){        
            
    $dati=explode("*",$val_1); //1° giro:$dati[0]=pinco, $dati[1]=1 - 2° giro:$dati[0]=pallo, $dati[1]=0 ecc...        
            
    if($dati[0] == 0){             
    //poi qui se vuoi puoi settare il flag che secondo me deve essere riferito a quel particolare id                         $val_membro[$id]=0;            
                
    echo "$id: <img src=\"X_rossa.jpg\"><br />";          
            }elseif(
    $dati[0] > 0){             
                
    $val_membro[$id]=1;           
                echo 
    "$id: ".$dati[0]."<img src=\"X_verde.jpg\"><br />";          
            }   
                 
            if(
    $dati[1] !=1){            
                
    $val_confirm[$id]=0;           
                echo 
    "$id: <img src=\"X_rossa.jpg\"><br />";                
            }elseif(
    $dati[1] == 1) {            
                
    $val_confirm[$id]=1;            
                echo 
    "$id: ".$dati[0]."<img src=\"X_verde.jpg\"><br />";                 
            }      
        } 

    echo 
    "</pre>"
    ?>
    Nel codice sono sparsi qua e lą dei var_dump() per verificare il funzionamento dello script!
    Spero di essere stato chiaro, grazie anticipatamente
    Ultima modifica di furion89; 06-12-2013 a 13:58

  2. #2
    Devi fare una semplice join tra la tabella creazione_clan e l'altra tabella dove ci sono i nomi...tipo chessņ
    select cc.a, cc.b, tc.nome_utente from creazione_clan as cc inner join tabella_collegata as tc ON tc.id_user = cc.id where cc.id_capoclan = x

    a quel punto quando ti serve il nome, usi il "nome_utente"

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.