[PHP][MYSQL] Problema con le SELECT

webmachine

Nuovo Utente
12 Gen 2016
41
0
6
Ciao a tutti,
devo realizzare uno script che estragga i 5 utenti più attivi del mio sito in base alla quantità di messaggi che pubblicano.
Per ora ho sfornato il codice seguente:
La tabella mex, contiene il testo e l'ID dell'utente che pubblica ed ha quindi le colonne: testo, ID_UTENTE.
La tabella utenze, contiene i dati dell'utente, ci interessano le colonne: ID e user.

Lo script funziona, cerca i 5 utenti "più attivi" e mi stampa i relativi ID.

PHP:
$sql = "SELECT * FROM `ask` GROUP BY `ID_UTENTE` LIMIT 5"; 
$result = $link->query($sql);
if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
        $ID_UTENTE = $row["ID_UTENTE"];
        echo $ID_UTENTE;
}
}
Gli ID però io vorrei convertirli in Username, perciò aggiungo un'ulteriore select all'interno. Il codice diventa:

PHP:
$sql = "SELECT * FROM `ask` GROUP BY `ID_UTENTE` LIMIT 5"; 
$result = $link->query($sql);
if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
        $ID_UTENTE = $row["ID_UTENTE"];
       
        $sql2 = "SELECT * FROM utenze WERE ID='$ID_UTENTE'";
        $result = $link->query($sql2);
        if ($result->num_rows > 0) {
            while($row1 = $result->fetch_assoc()) {
            $user = $row1["user"];
            echo $user;
        }       
       
    }
   
}
}
ma mi mostra il seguente errore:

Notice: Trying to get property of non-object in C:\xampp\htdocs\deer\dashboard\test.php on line 18

Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in C:\xampp\htdocs\deer\dashboard\test.php:13 Stack trace: #0 {main} thrown in C:\xampp\htdocs\deer\dashboard\test.php on line 13

Come posso risolvere? Grazie Mille
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.035
146
63
PR
www.borgo-italia.it
ciao
se ID è come logico che sia un numero intero togli gli apici
PHP:
//.....
 $sql2 = "SELECT * FROM utenze WERE ID=$ID_UTENTE";
//.....
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.035
146
63
PR
www.borgo-italia.it
ciao
qualie è la riga 18 e la 13?
anche se non so se saprò risponderti: sono antiquato e aborrisco la programmazione ad oggetti
 

marino51

Utente Attivo
28 Feb 2013
2.609
132
63
Lombardia
La tabella mex, contiene il testo e l'ID dell'utente che pubblica .....
... Lo script funziona, cerca i 5 utenti "più attivi"
Codice:
SELECT * FROM `ask` GROUP BY `ID_UTENTE` LIMIT 5
la select estrae 5 utenti a caso perchè non v'é traccia di un elemento che identifichi i "più attivi"
da una tabella che non è quella citata "mex"

ma forse non ho proprio capito nulla e lo script funziona davvero