Salve a tutti. Ho un bel problema.
Ho la seguente funzione.
La funzione fa il suo dovere quando si è nel primo if . Ovvero Stampa tutta la tabella 'listini' e cliccando sulle colonne fa l'ordinamento DI TUTTA LA TABELLA, in base a quel campo.
Quando invece entro nell' else , fa il filtro grazie alla condizione di WHERE, ma CLICCANDO SULLE COLONNE MI RESTITUISCE TUTTI I RECORD DELLA TABELLA, INDISTINTAMENTE, SENZA FILTRO.
Come posso sistemarla?
Grazie!
Ho la seguente funzione.
PHP:
Function VisualizzaTabellaFooter($elencotabelle,$criterioricerca,$testodescrizione){
INCLUDE('config.php');
###################################
// Funzione che visualizza i dati contenuti nella tabella listini. Vengono visualizzati in
//una tabella che ha righe di colore alternato, intestazione cliccabile per cambiare
// l'ordinamento dei dati, scrollabile.
#############################################################
$connessione = mysql_connect($db_host, $db_user,$db_password) or die("Connessione fallita !");
@mysql_select_db($db_name) or die("Selezione Database fallita !");
$testodescrizione=$_GET['testodescrizione'];
$elencotabelle=$_GET['elencotabelle'];
if (isset($_GET['field'])) {
$campo = $_GET['field'] == "descrizione" ? "descrizione" : "Codice_articolo" ;
} else {
$campo = "Costruttore";
}
if (isset($_GET['sort'])) {
$verso = $_GET['sort'] == "desc" ? "DESC" : "ASC";
} else {
$verso = "ASC";
}
if (($elencotabelle=="listini" and $testodescrizione="")or ($elencotabelle=="costruttori" or $elencotabelle=="categorie")){
//stampo la tabella listini per intero
$sql="SELECT * from listini order by {$campo} {$verso} ";
$risultato_query=mysql_query($sql,$connessione)or die ("query 1 fallita");
}
else{
// stampo la tabella listini con il filtro WHERE Codice_articolo
$word=trim($_GET['testodescrizione']);
$sql1="SELECT * from listini where Codice_articolo like \"%$word%\" order by {$campo} {$verso}
";
$risultato_query=mysql_query($sql1,$connessione)or ("Query sbagliata " .mysql_error());
// controlla il risultato della query attraverso la funzione mysql_query
}
$res_count=mysql_num_rows($risultato_query);
// numero totale di records
$verso = ($verso == "ASC") ? "desc" : "asc";
echo "<table width=\"747\" border=\"1\">
<tr>
<td width=\"118\"class=\"intestazione\"width=\"223\"><a href='index.php?field=Costruttore&sort={$verso}'>Costruttore
</a></td>
<td width=\"164\" class=\"intestazione\"width=\"223\"><a href='index.php?field=Codice_articolo&sort={$verso}'>Codice_articolo</a></td>
<td width=\"149\" class=\"intestazione\"width=\"223\"><a href='index.php?field=descrizione&sort={$verso}'>descrizione</a></td>
<td width=\"141\"class=\"intestazione\"width=\"223\"><a href='index.php?field=listino&sort={$verso}'>listino</td>
<td width=\"141\"class=\"intestazione\"width=\"223\"><a href='index.php?field=Codice Barcode&sort={$verso}'>Codice Barcode</td>
</tr>
</table>";
echo" <div id=\"Layer1\" style=\" width:747px; height:115px; overflow: auto;\"> ";
$class = '';
while($riga=mysql_fetch_array($risultato_query)){
$Costruttore=$riga["Costruttore"];
$Codice_articolo=$riga["Codice_articolo"];
$descrizione=$riga["descrizione"];
$listino=$riga["listino"];
$barcode=$riga["codice_barcode"];
$class = $class == 'colore1' ? 'colore2' : 'colore1';
echo "<table width=\"747\" border=\"1\">";
echo" <tr class= \"$class\"> ";
echo" <td width=\"118\" class= \"$class\" >$Costruttore </td>";
echo"<td width=\"164\" >$Codice_articolo</td>";
echo"<td width=\"149\" >$descrizione</td>";
echo"<td width=\"141\" >$listino</td>";
echo"<td width=\"141\" >$barcode</td>";
echo"</tr>";
}
echo"</table>";
echo"</div>";
echo"</td>";
echo" </tr>";
echo"</body>";
echo"</html>";
}
La funzione fa il suo dovere quando si è nel primo if . Ovvero Stampa tutta la tabella 'listini' e cliccando sulle colonne fa l'ordinamento DI TUTTA LA TABELLA, in base a quel campo.
Quando invece entro nell' else , fa il filtro grazie alla condizione di WHERE, ma CLICCANDO SULLE COLONNE MI RESTITUISCE TUTTI I RECORD DELLA TABELLA, INDISTINTAMENTE, SENZA FILTRO.
Come posso sistemarla?
Grazie!