giusto per capirci...
il mio codice è questo e sono consapevole che sia un casino sovrumano...ma abbiate pietà sono alle primissime armi!!!
Codice PHP:
<?php
$order=$_GET['order'];
//creazione query in base all'ordinamento alfabetico scelto
if($order=='az')
$query="SELECT * FROM phno ORDER BY cognome asc";
elseif($order=='za')
$query="SELECT * FROM phno ORDER BY cognome desc";
elseif($order=='az_soc')
$query="SELECT * FROM phno ORDER BY societa asc";
elseif($order=='za_soc')
$query="SELECT * FROM phno ORDER BY societa desc";
elseif($order=='az_uff')
$query="SELECT * FROM phno ORDER BY ufficio asc";
elseif($order=='za_uff')
$query="SELECT * FROM phno ORDER BY ufficio desc";
//se vengono utilizzati i parametri di ricerca e premuto il tasto Ricerca
//imposta la query con le condizioni di ricerca
elseif(isset($_GET['ricerca']))
{
$search_name=$_GET['search_name'];
$search_ufficio=$_GET['search_ufficio'];
$search_societa=$_GET['search_societa'];
$query="SELECT phno.id, cognome, nome, email, telefono, societa, direzione, ufficio, telefono_esterno FROM phno INNER JOIN societa on phno.societa_id=societa.id INNER JOIN direzione on phno.direzione_id=direzione.id INNER JOIN ufficio on phno.ufficio_id=ufficio.id WHERE (cognome like \"%$search_name%\" or nome like \"%$search_name%\") and ufficio like \"%$search_ufficio\" and societa like \"%$search_societa\" ORDER BY cognome";
} else
//altrimenti restituisce tutti i valori
$query="SELECT phno.id, cognome, nome, email, telefono, societa, direzione, ufficio, telefono_esterno FROM phno INNER JOIN societa on phno.societa_id=societa.id INNER JOIN direzione on phno.direzione_id=direzione.id INNER JOIN ufficio on phno.ufficio_id=ufficio.id ORDER BY cognome asc";
Poi la parte di creazione tabella:
Codice PHP:
if(!$db->select_db('oneone'))
{
echo "
[i]NONE[/i]</p>";
exit;
}
//esegue la query
$result=$db->query($query);
//calcolo numero di righe
$num_rows=$result->num_rows;
//se il numero di righe è 0
if($num_rows<=0)
{
echo "<h4>[i]Nessun risultato![/i]</h4>";
} else {
//processa le righe una ad una
//intestazione della tabella (ripetuta una sola volta)
echo $link;
echo "<TABLE width=100%>";
echo " <TR>";
echo " <TH class=\"intestazione\"></TH>";
echo " <TH valign=\"bottom\" class=\"intestazione\">COGNOME NOME   <a href=\"?order=az\"><img src=\"img/ord_cresc.jpg\" border=\"0\" align=\"texttop\" alt=\"Ordine crescente\"/></a><a href=\"?order=za\"><img src=\"img/ord_dec.jpg\" border=\"0\" align=\"texttop\" alt=\"Ordine decrescente\"/></a></TH>";
echo " <TH class=\"intestazione\">MAIL</TH>";
echo " <TH class=\"intestazione\" align='center'>NUMERO</TH>";
echo " <TH class=\"intestazione\">SOCIETA   <a href=\"?order=az_soc\"><img src=\"img/ord_cresc.jpg\" border=\"0\" align=\"texttop\" alt=\"Ordine crescente\"/></a><a href=\"?order=za_soc\"><img src=\"img/ord_dec.jpg\" border=\"0\" align=\"texttop\" alt=\"Ordine decrescente\"/></a></TH>";
echo " <TH class=\"intestazione\">UFFICIO   <a href=\"?order=az_uff\"><img src=\"img/ord_cresc.jpg\" border=\"0\" align=\"texttop\" alt=\"Ordine crescente\"/></a><a href=\"?order=za_uff\"><img src=\"img/ord_dec.jpg\" border=\"0\" align=\"texttop\" alt=\"Ordine decrescente\"/></a></TH>";
echo " </TR>";
for($i=0;$i<$num_rows;$i++)
{
//fetch oneone row
$row=$result->fetch_row();
$n=$i+1;
//condizioni per la creazione della tabella con righe alternate
if ($riga == "riga1")
{
$riga = "riga2";
} else {
$riga = "riga1";
}
echo "<TR class=\"$riga\">";
//Il nome è un link alla pagina dettaglio.php
//viene passato nel link il nome come parametro così da poterlo
// utilizzare nella nuova pagina con la variabile $_GET
echo "<TD class=\"cella indice\"> $n </TD>";
echo "<TD class=\"cella\" WIDTH='250'>[url='dettaglio.php?id=$row[0]']$row[1] $row[2][/url]</TD>";//Cognome Nome
echo "<TD class=\"cella\" WIDTH='250'><a href=\"mailto:$row[3]\">$row[3]</a></TD>";//Email
echo "<TD class=\"cella\" ALIGN=\"right\">$row[8] [b]$row[4]</strong</TD>";//Numero telefono
echo "<TD class=\"cella\" WIDTH='200'>$row[5]</TD>";//Societa
echo "<TD class=\"cella\" WIDTH='280'>$row[7]</TD>";//Ufficio
echo "</TR>";
}
echo "</TABLE>";
}
?>
Come posso fare per ordinare in base alla colonna e mantenendo i parametri di ricerca?
Oppure come dovrei fare con il POST?