php - useful - Il conteggio MySQLi(*) restituisce sempre 1




useful hashtags instagram (4)

$ Result-> numero_colonne; restituisce solo il numero di righe interessate da una query. Quando si esegue un conteggio (*) su un tavolo, si restituisce solo una riga in modo che non si possa avere un risultato diverso da 1.

Sto cercando di contare il numero di righe in una tabella e ho pensato che questo fosse il modo corretto per farlo:

$result = $db->query("SELECT COUNT(*) FROM `table`;");
$count = $result->num_rows;

Ma conta sempre restituisce (int)1 . Se uso la stessa query in phpMyAdmin ottengo il risultato giusto. Si trova in una tabella, quindi ho provato a testare $count[0] , ma questo restituisce NULL .

Qual è il modo giusto per farlo?


Cerca sempre di fare un recupero associativo, in questo modo puoi ottenere facilmente ciò che vuoi nel risultato di più casi

Ecco un esempio

$result = $mysqli->query("SELECT COUNT(*) AS cityCount FROM myCity")
$row = $result->fetch_assoc();
echo $row['cityCount']." rows in table myCity.";

$result->close();

Per me questo funziona, questo è quando vuoi contare gli elementi ripetuti all'interno di un registro.

Ad esempio: numero di persone che contrassegnano "sì" in un modulo.

tabella: utenti

registro: voto

elemento del registro: sì / no

$sql_user = "SELECT COUNT(*) FROM users WHERE vote = 'yes'";    
$result1 = $mysqli->query($sql_user);    
$row1 = $result1->fetch_row();    
$n_yes = $row1['0'];

Questo ha funzionato bene per me.

        // Veh Pro Count
    $query_tvp = "SELECT count(*) as total from submit";
    if ($result_tvp = $mysqli->query("$query_tvp")) {
        /* determine number of rows result set */
        $total_tvp = $result_tvp->fetch_row();
        $total_tvp = $total_tvp['0'];
        /* close result set */
        $result_tvp->close();
    }

            echo "Total: $total_tvp";




mysqli