Salve a tutti,
ho due function una di seguito all'altra le quali gestiscono una chiamata a db tramite mysqli_fetch_assoc, mentre la seconda esegue una query SUM calcolando il totale corrispettivo dei dati richiamati dalla prima:
Codice PHP:
public function QuoteAss() {
$dbc = $this->connection;
$query = "SELECT etc.etc;";
$result = mysqli_query($dbc, $query);
while ($row = mysqli_fetch_assoc($result)) {
etc.etc.
}
Codice PHP:
public function TotaleQuoteAss() {
$dbc = $this->connection;
$query2 = "SELECT SUM etc.etc.; ";
$count = mysqli_fetch_assoc(mysqli_query($dbc, $query2));
if (!$count) {
echo "Totale quote non disponibile";
} else {
$this->quote_ass = $count['totale_quote_ass'];
return $this->quote_ass; } }
Il blocco funziona perfettamente fino a che nella tabella ci sono records, caso non scontato. Mentre quando è vuota, le due funzioni passano l'errore "mysql_fetch_assoc() expects parameter 1 to be resource boolean given". E' un comportamento che non avevo previsto dal basso della mia inesperienza.
Volevo risolvere la questione con un blocco try-catch, di cui ci sono svariati esempi anche su php.net, ma ho trovato pochissime spiegazioni sul funzionamento e non riesco a modularlo a dovere.
Le eccezioni possibili sono:
1) connessione db fallita (QuoteAss)
2) tabella records vuota (deve scrivere "Nessun record presente") (QuoteAss)
3) tabella records vuota (deve scrivere "Totale 0") (TotaleQuoteAss)
Le mia domande sono:
1)si può fare con try-catch o è meglio giocarsela con dei semplici if?
2)qual è l'ordine logico del codice? dagli esempi si capisce che il try è il codice da provare con le varie eccezioni da lanciare in caso di errore. Il catch va nella medesima funzione o nell'implementazione della pagina? Su questo più leggo esempi, più mi confondo le idee.
Grazie mille!