-
Leggere valore mysql
Ciao
E' possibile fare un codice molto piu corto per leggere vari valori salvati in mysql
Grazie
Codice PHP:
<?php
// connessione al database
include('connect-db1.php');
// Recupero dati ultimo valore nelle news
$result = mysql_query("SELECT * FROM Storico_attivazioni_generali WHERE data ='05-2014'");
$total_results = mysql_num_rows($result);
$total_pages = ceil($total_results);
mysql_query("set names 'utf8'");
if ($total_pages == '0') $renderForm = 0 ;
else $renderForm = mysql_result($result, $i, 'HV')
?>
Codice PHP:
<?php
// connessione al database
include('connect-db1.php');
// Recupero dati ultimo valore nelle news
$result = mysql_query("SELECT * FROM Storico_attivazioni_dipendenti WHERE Dipendente = 'Manuel' and data ='06-2014'");
$total_results = mysql_num_rows($result);
$total_pages = ceil($total_results);
mysql_query("set names 'utf8'");
if ($total_pages == '0') $renderForm1 = 0 ;
else $renderForm1 = mysql_result($result, $i, 'HV')
?>
Prosegue sempre cosi
-
Non usare le funzioni mysql_*: sono deprecate. Usa mysqli o PDO.
In ogni caso dovresti controllare il valore restituito da mysql_query in modo da identificare eventuali errori.
Accorciare il codice non lo renderà migliore, però puoi certamente rimuovere le istruzioni inutili come
Codice PHP:
$total_pages = ceil($total_results);
in quanto $total_result è di tipo intero (poiché restituito da una chiamata a mysql_num_rows), e ceil applicata ad un numero intero restituisce il numero stesso.
Non mi è per nulla chiaro perché chiamare mysql_query("set names 'utf8'"); dopo aver eseguito l'interrogazione (non mi è nemmeno chiaro perché chiamarlo in effetti...).
Stai chiamando mysql_result passandole un parametro $i che non è definito da nessuna parte. Probabilmente intendevi $i = 0.
Se il numero di pagine viene usato solo per capire se l'insieme di risultati è non vuoto, si può fare di meglio usando mysql_fetch_assoc, il quale restituisce un vettore associativo con i campi della prossima riga, oppure false se non ci sono più righe.
Se ci tieni particolarmente alla brevità, puoi sostituire l'if-then-else con l'operatore ternario.
Applicando tutte le migliorie, ottieni:
Codice PHP:
// Connessione al database
// Rende disponibile una variabile $link rappresentante la connessione MySQLi
include('connect-db1.php');
// Recupero dati
$query = "SELECT * FROM Storico_attivazioni_generali WHERE data ='05-2014'";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
$record = mysqli_fetch_assoc($result);
$render_form = ($record !== false) ? $record['HV'] : 0;