Salve come da titolo ho un problema in una select, mi spiego:
questa è la query di partenza che mi estrae tutti i record della condizione WHERE
ho voluto dare un pò di colore al risultato, infatti adesso ho:
valori positivi: righe colore verde
valori negativi: righe colore rosso
valore pari a zero: righe colore blu
ed ho modificato la query così (la parte di codice mancante la ometto perchè è identica):
La query modificata mi conta correttamente i record che sono nel db, ma me ne fa vedere a video uno in meno cioè manca l'ultimo ed il primo rigo a video è vuoto...
Qualcuno sa dirmi dov'è l'errore?
Grazie
Max61
questa è la query di partenza che mi estrae tutti i record della condizione WHERE
PHP:
// numero di risultati da visualizzare per pagina
$per_page = 500;
// calcola le pagine totali
$result = mysql_query("SELECT * FROM anticipazione WHERE (peso_X_congiunturale >= 4000 OR peso_X_congiunturale <=-4000)");
$total_results = mysql_num_rows($result);
$total_pages = ceil($total_results / $per_page);
// controlla se la variabile 'page' è impostata nell'URL (es: view-paginated.php?page=1)
if (isset($_GET['page']) && is_numeric($_GET['page']))
{
$show_page = $_GET['page'];
// mi assicuro che il valore di $show_page sia valido
if ($show_page > 0 && $show_page <= $total_pages)
{
$start = ($show_page -1) * $per_page;
$end = $start + $per_page;
}
else
{
// errore - mostra il primo set di risultati
$start = 0;
$end = $per_page;
}
}
else
{
// se la pagina non è impostata, mostra il primo set di risultati
$start = 0;
$end = $per_page;
}
// visualizza impaginazione
//echo "<p><h4><a class='nounderline' href='TestamentiCaricatiAll.php'>Visualizza Tutti</a> | <b>Visualizza impaginato:</b> ";
for ($i = 1; $i <= $total_pages; $i++)
{
//echo "<a href='viewpaginated.php?page=$i'>$i</a> ";
}
echo "</p>";
// visualizza i dati in tabella
echo "<table border='1' cellpadding='5'>";
echo "<tr> <th>Codice</th> <th>Prodotto</th> <th>Posizione</th> <th>Peso</th> <th>Tendenziale</th> <th>Congiunturale</th> <th>Peso X congiunturale</th></tr>";
// loop tra i risultati della query del database, visualizzandoli in tabella
for ($i = $start; $i < $end; $i++)
{
// mi assicuro che PHP non cerchi di mostrare risultati che non esistono
if ($i == $total_results) { break; }
// emissione del contenuto di ogni riga in una tabella
echo "<tr>";
echo '<td>' . mysql_result($result, $i, 'id') . '</td>';
echo '<td>' . mysql_result($result, $i, 'prodotto') . '</td>';
echo '<td>' . mysql_result($result, $i, 'posizione') . '</td>';
echo '<td>' . mysql_result($result, $i, 'peso') . '</td>';
echo '<td>' . mysql_result($result, $i, 'tendenziale') . '</td>';
echo '<td>' . mysql_result($result, $i, 'congiunturale') . '</td>';
echo '<td>' . mysql_result($result, $i, 'peso_X_congiunturale') . '</td>';
echo "</tr>";
}
// chiude la tabella>
echo "</table>";
valori positivi: righe colore verde
valori negativi: righe colore rosso
valore pari a zero: righe colore blu
ed ho modificato la query così (la parte di codice mancante la ometto perchè è identica):
PHP:
// mi assicuro che PHP non cerchi di mostrare risultati che non esistono
if ($i == $total_results) { break; }
while ($riga = mysql_fetch_array($result)) {
if($riga['peso_X_congiunturale'] < 0){
echo "<td>$id</td>";
echo "<td>$prodotto</td>";
echo "<td>$posizione</td>";
echo "<td>$peso</td>";
echo "<td>$tendenziale</td>";
echo "<td>$congiunturale</td>";
echo "<td>$peso_X_congiunturale</td>";
$colore="#ff0000";
} elseif($riga['peso_X_congiunturale'] > 0){
$colore="green";
echo "<td>$id</td>";
echo "<td>$prodotto</td>";
echo "<td>$posizione</td>";
echo "<td>$peso</td>";
echo "<td>$tendenziale</td>";
echo "<td>$congiunturale</td>";
echo "<td>$peso_X_congiunturale</td>";
$colore="green";
} elseif($riga['peso_X_congiunturale'] == 0){
echo "<td>$id</td>";
echo "<td>$prodotto</td>";
echo "<td>$posizione</td>";
echo "<td>$peso</td>";
echo "<td>$tendenziale</td>";
echo "<td>$congiunturale</td>";
echo "<td>$peso_X_congiunturale</td>";
$colore="blue";
}
echo "<tr style=\"color:$colore; \">";
$id=$riga['id'];
$prodotto=$riga['prodotto'];
$posizione=$riga['posizione'];
$peso=$riga['peso'];
$tendenziale=$riga['tendenziale'];
$congiunturale=$riga['congiunturale'];
$peso_X_congiunturale=$riga['peso_X_congiunturale'];
}
echo "</table>";
Qualcuno sa dirmi dov'è l'errore?
Grazie
Max61