• User Newbie

    Tabella dinamica e ciclo while

    Ciao ragazzi! 🙂
    Sono nuovo in questo forum. Non c'è altra migliore occasione di augurare a tutti vuon buon Natale ^_^

    Quando avete un po' di tempo, mi date una mano per sbrogliare questo nodo?
    Avrei bisogno di creare una tabella dinamica nella quale vengono riportati i dati estratti da una query.
    Il problema è che per ogni risultato, il codice sotto, mi genera una tabella nuova.
    Io vorrei che mi generasse soltanto una riga...per ogni risultato.
    Credo che il problema sia causato dall'errato coordinamento dei 2 cicli while.
    Ecco il codice:

    <?

    $conn = mysql_connect($db_host,$db_user,$db_password) or die("Errore nella connessione a MySql: " . mysql_error());

    	mysql_select_db($db_database, $conn) or die("Errore nella connessione al database" . mysql_error()); 
    

    $query = "SELECT uid FROM group WHERE gid='6'";

    $result = mysql_query($query, $conn) or die("nessun risultato" . mysql_error());

    			while ($ris = mysql_fetch_array($result)) { 					
    

    $query1 = "SELECT uname, name, email FROM users WHERE uid='" . $ris['uid'] . "'" or die("Errore nella query " . mysql_error());
    $result1 = mysql_query($query1,$conn) or die("nessun risultato" . mysql_error());

    $tab.='<table width="100%" border="1">
    <tr>
    <td><div align="center">** Nominativo </div></td>
    <td><div align="center">
    Utenza </div></td>
    <td><div align="center">
    Indirizzo E-mail </div></td>
    <td><div align="center">
    prova **</div></td>
    </tr>';

    	  		 while ($ris1 = mysql_fetch_array($result1)) { 
    

    $Nominativo = $ris1['pn_name'] ;
    $Utenza = $ris1['pn_uname'] ;
    $Email = $ris1['pn_email'] ;

    $tab.='<tr>
    <td><div align="center">'.$Nominativo.' </div></td>
    <td><div align="center">'.$Utenza.' </div></td>
    <td><div align="center">'.$Email.' </div></td>
    </tr>';

    $tab .='</table>';
    }
    }
    echo $tab;

    ?>

    Spero che mi aiutiate a capire 🙂

    Ciao! 😉


  • User Attivo

    Se ho capito bene vuoi che ti stampi una sola riga nel while? A questo punto fai un fetch_array singolo usando i limit. 😉


  • User Newbie

    Si esattamente. Vorrei che mi stampi una riga sotto all'intenstazione (nominativo, utenza, email) per ogni risultato trovato.

    Mi faresti un esempio su come usare limit?
    Non so cosa sia...sono solo agli inizi con php! :sbav:

    Grazie:)


  • User Attivo

    @mysql_fetch_array(mysql_query("select * from tabella where campo='$valore' LIMIT $step,$stop"));

    siccome nel tuo caso vogliamo solo un risultato $step sarà uguale a 0 e $stop uguale a 1. Poi sceglierai tu in base a che cosa vuoi che venga stampata la riga, che so ORDER by id oppure ORDER by id DESC. Dipende dalle tue esigenze. 🙂


  • User Attivo

    Vuoi provare con questo, non l'ho testato ma dovrebbe funzionare.

    $query = "SELECT uid FROM group WHERE gid='6'"; 
    $result=mysql_query&#40;$query&#41; or die&#40;"QUERY NON ESEGUITA"&#41;;
    $view=mysql_fetch_row&#40;$result&#41; or exit&#40;&#41;;
    foreach&#40;$view as $d => $top&#41;
    print&#40;"<div align=\"center\"><table width=\"100%\" border=\"1\">
    <tr>
    <td align=\"center\">** Nominativo **</td>
    <td align=\"center\">** Utenza **</td>
    <td align=\"center\">** Indirizzo E-mail **</td>
    </tr>"&#41;; 
    $query1 = "SELECT uname, name, email FROM users WHERE uid='" . $top . "'" or die&#40;"Errore nella query " . mysql_error&#40;&#41;&#41;;
    print&#40;"<tr>"&#41;;
    $result1 = mysql_query&#40;$query1&#41; or die&#40;"nessun risultato"&#41;; 
    while &#40;$ris1 = mysql_fetch_array&#40;$result1&#41;&#41;
    &#123;
    $utenza=$ris1&#91;uname&#93;;
    $nominativo=$ris1&#91;name&#93;;
    $email=$ris1&#91;email&#93;;
    print&#40;"<td align=\"center\">$nominativo</td>\n
    <td align=\"center\">$utenza</td>\n
    <td align=\"center\">$email</td>\n"&#41;;
    &#125;
    print&#40;"</tr></table></div>"&#41;;
    
    

    Ovviamente io ho omesso i parametri di connessione al DB e i tag php. Prova e fammi sapere.


  • User Newbie

    Ti ringrazio linus ma ho risolto in con i while in questo modo:

    $conn = mysql_connect($db_host,$db_user,$db_password) or die("Errore nella connessione a MySql: " . mysql_error());

    	mysql_select_db($db_database, $conn) or die("Errore nella connessione al database" . mysql_error()); 
    

    $query = "SELECT uid FROM group_membership WHERE gid='6'";

    $result = mysql_query($query, $conn) or die("nessun risultato" . mysql_error());

    $tab.='<table width="100%" border="1">
    <tr>
    <td><div align="center">** Nominativo </div></td>
    <td><div align="center">
    Utenza </div></td>
    <td><div align="center">
    Indirizzo E-mail**</div></td>
    <td><div align="center">** Assente **</div></td>
    </tr>';

    while ($ris = mysql_fetch_array($result)) { 
    

    $query1 = "SELECT uname, name, email FROM users WHERE uid='" . $ris['uid'] . "'" or die("Errore nella query " . mysql_error());
    $result1 = mysql_query($query1,$conn) or die("nessun risultato" . mysql_error());

    while ($ris1 = mysql_fetch_array($result1)) { 
    

    $Nominativo= $ris1['name'];
    $Utenza= $ris1['uname'];
    $Email= $ris1['email'];

    $tab.='<tr>
    <td><div align="center">'.$Nominativo.' </div></td>
    <td><div align="center">'.$Utenza.' </div></td>
    <td><div align="center">'.$Email.' </div></td>
    <td><div align="center">** <input type="checkbox" name="select" value="selected"> **</div></td>

    </tr>';

    }

    }

    $tab.='</table>';

    echo $tab;

    ?>