mmm c'è una duplicazione dei tag... mmm no secondo me sta query è sbagliata...
poi come faccio a fare il fetch_row (per contare le risorse relative ai tag)? :master:![]()
mmm c'è una duplicazione dei tag... mmm no secondo me sta query è sbagliata...
poi come faccio a fare il fetch_row (per contare le risorse relative ai tag)? :master:![]()
hai presente come funziona una join?
sennò hai poco da ottimizzare.
E' normale che ti dia "duplicati" sui tag. Stai prendendo un sottoinsieme del prodotto cartesiano tra le due tabelle.
A te interessano le risorse, quindi il tag ripetuto devi ignorarlo, o nemmeno selezionarlo tra i campi, se non ti serve.
sennò non chiederi aiuto no?Originariamente inviato da skidx
hai presente come funziona una join?![]()
![]()
come faccio a ignorarlo o nemmeno selezionarlo tra i campi?
a parte il FROM per il resto è una query come le altre.
Dopo "select" ci vanno i campi che intendi selezionare. Se il nome del tag non ce lo vuoi, non ce lo metti, selezionando solo le risorse.
non ci siamo capiti... ottengo dei risultati doppi o tripli ecc perchè evidentemente ho delle righe con gli stessi valori... devo usare GROUP BY giusto? oppure DISTINCT no?Originariamente inviato da skidx
a parte il FROM per il resto è una query come le altre.
Dopo "select" ci vanno i campi che intendi selezionare. Se il nome del tag non ce lo vuoi, non ce lo metti, selezionando solo le risorse.
edit
ho usato group by e sembra funzionare... come faccio a contare le risorse?
allora, ricominciamo da capo.
che relazione c'è tra query e risorse? 1 a n? n a m?
mi dici come sono relazionate tra loro le tabelle?
te lo posso anche dire ma non cambia il fatto che la prima query che ho postato funzionavaOriginariamente inviato da skidx
mi dici come sono relazionate tra loro le tabelle?![]()
comunque:
tra tags e risorse c'è una relazione n,m che passa attraverso la tabella tags2risorse![]()
ogni riga di tags2risorse mette in correlazioni gli indici di tags e risorse
mi sono spiegato?
ci guadagnerai qualche milllesimo di secondo ma si ottimizza pure con questa:
codice:$risposta .='<tr><td>'.$nome.'</td><td>'.$n_risorse.'</td></tr>';![]()
Originariamente inviato da neutrobert
ci guadagnerai qualche milllesimo di secondo ma si ottimizza pure con questa:
codice:$risposta .='<tr><td>'.$nome.'</td><td>'.$n_risorse.'</td></tr>';![]()
concentriamoci sulle query
grazie
ora è così:
ed estrae i tag correttamente... ora vorrei contare il numero delle risorse per ogni tag (come faceva la prima query)Codice PHP:
$result = mysql_query("SELECT tags.id_tags,tags.nome,tags2risorse.id_risorse FROM tags,tags2risorse WHERE tags.id_tags = tags2risorse.id_tags AND LOWER(nome) LIKE LOWER('$item%') GROUP BY tags.nome ORDER BY tags.nome");
Aggiungi "COUNT(*) as numRisorse" alla SELECT