Buona serata,sto facendo vari tentativi nel capire e scegliere il metodo migliore per contare le righe di una query.
Esempio di una tabella:
[table="width: 200"]
[tr]
[td]id[/td]
[td]marca[/td]
[td]prezzo[/td]
[/tr]
[tr]
[td]1[/td]
[td]nike[/td]
[td]80,00[/td]
[/tr]
[tr]
[td]2[/td]
[td]adidas[/td]
[td]80,00[/td]
[/tr]
[/table]
1) Metodo
Stampa 2 quindi funziona.
2) Metodo
Quale metodo è migliore?
Provo a dire la mia,correggetemi se sbaglio secondo me è meglio utilizzare COUNT(id) perchè in questo modo viene controllato solo il primo campo(id) fregandosene degli altri e quindi la ricerca sarà molto più veloce rispetto a SELECT * .
E' giusto il mio ragionamento?
Infine un'altra cosa che non ho capito è come mai scrivendo in questo modo:
Nel primo metodo usando mysql_num_rows con SELECT * funziona bene,mentre usandolo con SELECT COUNT(id) non funziona più,come mai?
Esempio di una tabella:
[table="width: 200"]
[tr]
[td]id[/td]
[td]marca[/td]
[td]prezzo[/td]
[/tr]
[tr]
[td]1[/td]
[td]nike[/td]
[td]80,00[/td]
[/tr]
[tr]
[td]2[/td]
[td]adidas[/td]
[td]80,00[/td]
[/tr]
[/table]
1) Metodo
$sql = "SELECT *
FROM scarpe";
$res = mysql_query($sql) or die($sql);
$res = mysql_num_rows($res);
echo $res;
Stampa 2 quindi funziona.
2) Metodo
Stampa 2 quindi funziona.$sql = "SELECT COUNT(id)
FROM scarpe";
$res = mysql_query($sql) or die($sql);
$res = mysql_fetch_row($res);
echo $res[0];
Quale metodo è migliore?
Provo a dire la mia,correggetemi se sbaglio
E' giusto il mio ragionamento?
Infine un'altra cosa che non ho capito è come mai scrivendo in questo modo:
Stampa 1 quindi non funziona?$sql = "SELECT COUNT(id)
FROM scarpe";
$res = mysql_query($sql) or die($sql);
$res = mysql_num_rows($res);
echo $res;
Nel primo metodo usando mysql_num_rows con SELECT * funziona bene,mentre usandolo con SELECT COUNT(id) non funziona più,come mai?