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

    Problemi stampa univoca risultati query

    Ciao a tutti, ho un problema che non riesco a risolvere.
    Ho 2 tabelle relazionate tra loro tipo queste 2:

    codice:
    Tabella A
    id   nome   cognome
    1    pippo   baudo
    
    Tabella B
    id   key   telefono
    1    1      33333333
    2    1      44444444
    3    1      55555555
    4    1      66666666
    Se faccio una join sulle due tabelle, mi esce un risultato tipo questo:


    codice:
    id nome telefono
    1  pippo  333333
    1  pippo  444444
    1  pippo  555555
    1  pippo  666666
    Adesso io vorrei creare un foreach per stampare qualcosa del genere

    codice:
    Nome: pippo
    Cognome Baudo
    Numero telefono 1: 333333
    Numero telefono 2: 444444
    Numero telefono 3: 555555
    Numero telefono 4: 666666

    Purtroppo non riesco a farlo, ho fatto un ciclo di questo genere.


    codice:
    $data_id = array();            
    foreach($persone as $rows):                
        $data_id[] = $rows->id;            
    endforeach;
                
    for($j=0;$j<count($persone);$j++){                
         if(in_array((int) $persone[$j]->id,$data_id)){                    
            echo '<h1>in array'.$i.'</h1><br/>';                     
            echo 'PLANS ID: '.$persone[$j]->telefono.'<br/>';                
            echo 'PLANS ID2: '.$persone[$j+1]->telefono.'<br/>';              
            unset($data_id[$j]);                
    }                
    $i++;            
    }
    In questo modo avevo pensato di caricare un array con tutti gli id e renderlo univoco.
    Nel for verificare che l'id è nell'array tramite in_array. Se lo è allora stampo il telefono 1 ed il telefono 2 faccio l'unset dell'id dall'array e riprendo il ciclo.

    Purtroppo l'unset non me lo fa ma poi credo che è troppo artocolato come metodo, sono sicuro che esiste qualcosa di molto meno complesso ed articolato di questo. anche molto più logico
    Qualcuno mi da una mano?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    11
    Sarebbe la via più semplice per stampare come hai bisogno:

    Codice PHP:
    $sql mysql_query("SELECT * FROM /'tabella A'/") or die ("errore db");  
    if (
    mysql_num_rows($sql) > ) { 
    while (
    $v mysql_fetch_assoc($sql)) {    
    $id $v['id']; 
    echo 
    $v['nome']."<br/>".$v['cognome']."<br/>"
    $sql1 mysql_query("SELECT * FROM /'tabella B'/ WHERE key = '$id'") or die ("errore db");  
    $row mysql_num_rows($sql1); 
    if (
    $row 0) { 
    $row++; 
    while (
    $v1 mysql_fetch_assoc($sql1)) { 
    echo 
    $v1['telefono']."\r\n"
    echo 
    "<br/>"
    }
    }
    }


  3. #3
    Provo la tua soluzione, sto usando un framework mvc e devo organizzare il controller
    Grazie dopo ti aggiorno.
    F

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 © 2024 vBulletin Solutions, Inc. All rights reserved.