- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Semplice domanda su COUNT o mysql_num_rows
-
Semplice domanda su COUNT o mysql_num_rows
Buonasera a tutti,
ho una questione da risolvere e spero di essere chiaro sufficientemente chiaro...
Ho questo codice:[PHP]
<table class="table table-hover">
<tr>
<td><b>NOME</b></td>
<td><b>TOTALE ALV</b></td>
</tr>
<?
$sql = "
SELECT *
FROM API
ORDER BY ID_API ASC
LIMIT 20";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
?>
<tr>
<td><? echo $row['NOME']; ?></td>
<td>XXX</td>
</tr>
<?
}
?>
</table>
[/PHP]ho una tabella API (richiamata nel codice sopra) e una tabella ALV
al posto delle XXX del codice sopra vorrei mettere la funzione mysql_num_rows (o alternative possibili) che mi conta quante sono le righe nella tabella ALV (non API) che hanno come ID_API (ovviamente presente anche nella tabella ALV) quello corrispondente alla riga stessa.
sapete consigliarmi una soluzione ?
grazieMP
-
Devi farlo con un'altra query... le risorse che hai in quel codice non sono sufficienti per ottenere quel dato. All'interno del while, prima della stampa
[php]
$sql_conteggio = "SELECT COUNT(ID_API) AS conteggio FROM ALV WHERE ID_API = '".$row["ID_API"]."'";
$query_conteggio = mysql_query($sql);
$riga_conteggio = mysql_fetch_array($query_conteggio);
$conteggio = $riga["conteggio"];
// altre operazioni
echo "<td>$conteggio</td>";
?>
[/php]Non utilizzare MAI mysql_num_rows() SOLO per contare le righe in una tabella, ma usa sempre la funzione count di MySQL. Anche se tu lato PHP richiedi solo il conteggio, il buffer del MySQL ti invia comunque tutti i dati della tabella che gli hai richiesto e se non ti servono realmente rappresentano un passaggio di dati inutile che se effettuato su migliaia di record può seriamente rallentare l'esecuzione dello script, oltre che consumare tanta RAM/CPU inutile.
-
Grazie mille !