prova cosi:
SELECT COUNT(tags.id_tags) as numRisorse,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
prova cosi:
SELECT COUNT(tags.id_tags) as numRisorse,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
mmm ho fatto un po' diverso... però funziaOriginariamente inviato da luca200
Aggiungi "COUNT(*) as numRisorse" alla SELECT![]()
adesso provo a farcela da solo con le altre... se non riesco torno da voiCodice PHP:$result = mysql_query("SELECT tags.id_tags,tags.nome,tags2risorse.id_risorse, COUNT(tags2risorse.id_tags) FROM tags,tags2risorse WHERE tags.id_tags = tags2risorse.id_tags AND LOWER(nome) LIKE LOWER('$item%') GROUP BY tags.nome ORDER BY tags.nome");
![]()
ariecchime![]()
allora la query da ottimizzare è questa:
ho provato con questa ma non funzia:Codice PHP:$result = mysql_query("SELECT id_utenti,name,FROM_UNIXTIME(data_registrazione,'%d/%m/%Y') FROM utenti WHERE LOWER(name) LIKE LOWER('$item%') ORDER BY name LIMIT 100");
if(mysql_num_rows($result) != 0){
$risposta = '<table><th>Nome utente</th><th>Data registrazione</th><th>Numero risorse</th><th>Numero voti</th>';
while ($row = mysql_fetch_array($result)) {
$id_utente = $row[0];
$nome = $row[1];
$data = $row[2];
$ris = mysql_num_rows(mysql_query("SELECT id_risorse FROM risorse WHERE risorse.utenti_id = $id_utente"));
$voti = mysql_num_rows(mysql_query("SELECT id_voti FROM voti WHERE voti.utenti_id = $id_utente"));
$risposta .= "<tr><td><a href=\"utente_dettagli.php?id=$id_utente\">$nome</a></td><td>$data</td><td>$ris</td><td>$voti</td></tr>";
}
grazieCodice PHP:$result = mysql_query("SELECT utenti.id_utenti,utenti.name,FROM_UNIXTIME(utenti.data_registrazione,'%d/%m/%Y'),risorse.id_risorse,voti.id_voti FROM utenti,risorse,voti WHERE utenti.id_utenti = risorse.utenti_id AND utenti.id_utenti = voti.utenti_id AND LOWER(utenti.name) LIKE LOWER('$item%') AND risorse.utenti_id = utenti.id_utenti AND voti.utenti_id = utenti.id_utenti ORDER BY utenti.name LIMIT 100");
![]()
no sta query proprio non funzia... ho fatto un casino![]()
nessuno si vuole rompere il cervelleto a darmi una mano?![]()
non tutti insieme eh![]()
lo sapevo che vi stufavate in fretta di me![]()
questa funziona al 90%... nel senso che mi manca ancora il conteggio del numeri dei voti
consigli, insulti, suggerimenti?Codice PHP:$result = mysql_query("SELECT utenti.id_utenti,utenti.name,FROM_UNIXTIME(utenti.data_registrazione,'%d/%m/%Y'),COUNT(risorse.utenti_id) FROM utenti,risorse WHERE risorse.utenti_id = utenti.id_utenti AND LOWER(utenti.name) LIKE LOWER('$item%') GROUP BY utenti.name ORDER BY utenti.name LIMIT 0,100");
forse devo fare un JOIN con tutte e 3 le tabelle... ma come si fa?
siete cattivi![]()
prima mi date false speranze e poi...
posta la struttura delle tabelle e cosa vuoi ottenere
ciao
ma non ce n'è bisogno...Originariamente inviato da bubu77
posta la struttura delle tabelle e cosa vuoi ottenere
ciao
voglio ottimizzare questo:
grazieCodice PHP:$result = mysql_query("SELECT id_utenti,name,FROM_UNIXTIME(data_registrazione,'%d/%m/%Y') FROM utenti WHERE LOWER(name) LIKE LOWER('$item%') ORDER BY name LIMIT 100");
if(mysql_num_rows($result) != 0){
$risposta = '<table><th>Nome utente</th><th>Data registrazione</th><th>Numero risorse</th><th>Numero voti</th>';
while ($row = mysql_fetch_array($result)) {
$id_utente = $row[0];
$nome = $row[1];
$data = $row[2];
$ris = mysql_num_rows(mysql_query("SELECT id_risorse FROM risorse WHERE risorse.utenti_id = $id_utente"));
$voti = mysql_num_rows(mysql_query("SELECT id_voti FROM voti WHERE voti.utenti_id = $id_utente"));
$risposta .= "<tr><td><a href=\"utente_dettagli.php?id=$id_utente\">$nome</a></td><td>$data</td><td>$ris</td><td>$voti</td></tr>";
}
![]()
Codice PHP:$result = mysql_query("SELECT u.id_utenti, u.name,
FROM_UNIXTIME(u.data_registrazione,'%d/%m/%Y'),
r.id_risorse, v.id_voti
FROM utenti u
LEFT JOIN risorse r ON u.id_utenti = r.utenti_id
LEFT JOIN voti v ON u.id_utenti = v.utenti_id
WHERE LOWER(u.name) LIKE LOWER('$item%')
ORDER BY u.name
LIMIT 100");
if(mysql_num_rows($result) > 0){
$risposta = '<table><th>Nome utente</th>
<th>Data registrazione</th>
<th>Numero risorse</th>
<th>Numero voti</th>';
while ($row = mysql_fetch_row($result)) {
$id_utente = $row[0];
$nome = $row[1];
$data = $row[2];
$ris = $row[3];
$voti = $row[4];
$risposta .= "<tr>
<td><a href=\"utente_dettagli.php?id=$id_utente\">$nome</a></td>
<td>$data</td><td>$ris</td><td>$voti</td>
</tr>";
}
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.