Pagina 1 di 1

Cambiare modalità di ricerca

Inviato: 21/09/2011, 19:07
da pegasus81
Salve ragazzi. Esplico il mio problema: ci troviamo qui. Vorrei estrarre i miei dati da un'altra tabella del DB (MIA_TABLE) e non da USERS_TABLE. Avete qualche suggerimento? Grazie.

P.s.: ho già provato a sostituire MIA_TABLE con USERS_TABLE ma il risultato non è quello sperato. Forse perchè in MIA_TABLE ho più di una copia (parziale) di ogni utente della tabella USER_TABLE (quindi lo stesso campo user_id in MIA_TABLE potrebbe ripetersi anche più di una volta).

Re: Cambiare modalità di ricerca

Inviato: 21/09/2011, 21:41
da Micogian
Non ho capito cosa vuoi fare.
Cosa vuol dire che hai più user_id nella MIA_TABLE ? gli ID servono proprio a rendere univoci i dati e creare collegamento tra tabelle diverse.
Se ti spieghi meglio vediamo cosa si può fare.

Re: Cambiare modalità di ricerca

Inviato: 23/09/2011, 0:41
da pegasus81
Allora: sappiamo che in USER_TABLE ho l'user_id univoco. Nella fase di ricerca vorrei estrarre da MIA_TABLE tramite quell'user_id tutti i record a lui correlati. Spero di essere stato piu chiaro. :)

Re: Cambiare modalità di ricerca

Inviato: 23/09/2011, 6:50
da Micogian
Quello lo avevo capito, quello che non ho capito è quello che devi estrarre e come devi visualizzarlo.
Se sei in phpbb o in una Custom Page hai già a disposizione i dati dell'user, basta fare una query della MIA_TABLE cercando l'user_id che è dato da $user_data['user_id']

Se vuoi fare una query in entrambe le tabelle devi fare una cosa del genere,
per semplificare dichiari "u" la tabella USER_TABLE e "m" la tabella MIA_TABLE e trovare un campo comune tra le due tabelle (user_id):
(per usare MIA_TABLE devi averla inserita nel file constants.php)

Codice: Seleziona tutto

$user_cor = $user_>data['user_id'];
$sql = "SELECT u.user_id, u.username, u.campo_1, u.campo_2,
	m.user_id, m.campo_1, m.campo_2, m.campo_3
    FROM " . USER_TABLE . " u, " . MIA_TABLE . " m 
    WHERE u.user_id = $user_cor
    AND u.user_id = m.user_id
    ORDER BY m.campo_1";
$result = $db->sql_query($sql);
    $i = 0;
    while ($row = $db->sql_fetchrow($result))
    {
	$campo1[$i] = $row['campo_1'];
	$campo2[$i] = $row['campo_2'];
	$campo3[$i] = $row['campo_3'];
	++$i ;
	}
A questo punto hai estratto i dati dell'user sotto forma di array, li devi trasformare in Variabili per il template, in questo modo:

Codice: Seleziona tutto

for ($x = 0; $x < $i; ++$x)
{
 $template->assign_block_vars('lista_dati',array(
	'MIO_CAMPO_1'			=> $campo1[$x],
	'MIO_CAMPO_2'			=> $campo2[$x],
	'MIO_CAMPO_3'			=> $campo3[$x]
	));
}
Nel template dovrai fare un <!-- BEGIN lista_dati -->
e visualizzare i valori dell'array che saranno:
{lista_dati.MIO_CAMPO_1}, {lista_dati.MIO_CAMPO_2}, {lista_dati.MIO_CAMPO_3}, ecc.

Re: Cambiare modalità di ricerca

Inviato: 25/09/2011, 11:20
da pegasus81
Grazie bingo, ma alla fine ho risolto modificando il file originale! :D