giovedì 27 novembre 2008
Libero: COLLABORAZIONI (2)
domenica 2 novembre 2008
Griglia dinamica in PHP (seconda parte)

Nel post precedente ci siamo occupati di costruire un file php che ci desse l'opportunità di costruire una griglia dati ed una query SQL in grado di passarci dei dati senza vincoli con nessuna tabella. Adesso ci preoccuperemo di creare il file che ci restituirà i dati e dove imposteremo la tabella. Ecco il codice HTML.
<form action="#" method="post">
<table width="500" align="center" bgcolor="#FFFFCC">
<tr bgcolor="#0066ff">
<td width="250" colspan="1"><div align="center" class="Stile2"><h3>Tabella:</h3></div></td>
<td colspan="2"><div align="center" class="Stile2"><h3>Clienti</h3></div></td>
</tr>
<tr bgcolor="#99ccFF">
<td colspan="2" align="center"><span class="Stile2">Filtra Clienti per :</span></td>
<th > </th>
</tr>
<tr bgcolor="#99ccFF">
<td colspan="2" align="center"><table width="200">
<tr>
<td><label>
<input type="radio" name="Gruppopulsantidiscelta1" value="cognome">
Cognome</label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="Gruppopulsantidiscelta1" value="denominazione">
Denominazione</label></td>
</tr>
</table>
</td>
<th width="167" bordercolor="#FFFFFF" bgcolor="#99ccFF"></th>
</tr>
<tr bgcolor="#99ccFF">
<td colspan="2"><div align="center"><input size='25' name='cerca' value=''></div></td>
<th bordercolor="#FFFFFF"> </th>
</tr>
<tr bgcolor="#99ccFF">
<td colspan="2"> <div align="center">
<input type='submit' name='Apply' value='Cerca '>
</div></td>
<th> </th>
</tr>
</table>
</form>
Passiamo al php
<?php
$nometabella='Clienti';//impostiamo il nome della tabella
$numerocolonne=16;//l'indice parte da zero quindi (n.ro campi tabella - 1)
$NomeCampo=array();//creo l'array per tutti i nomi dei campi
$NomeCampo[]='Id';//Assegno i nomi dei campi
$NomeCampo[]='Denominazione';
$NomeCampo[]='Cognome';
$NomeCampo[]='Nome';
$NomeCampo[]='indirizzo';
$NomeCampo[]='Citta';
$NomeCampo[]='Provincia';
$NomeCampo[]='CF';
$NomeCampo[]='PI';
$NomeCampo[]='Telefono';
$NomeCampo[]='Fax';
$NomeCampo[]='Cellulare';
$NomeCampo[]='EMail';
$NomeCampo[]='Cap';
$NomeCampo[]='UltimaModifica';
$NomeCampo[]='Note';
$NomeCampo[]='Note1';
$Ordina='Denominazione';//in assenza di altri filtri la tabella viene ordinata in base a questo campo
$Modifica='href=Modifica.php';//file di modifica record
$Elimina='href=Elimina.php';//file di eliminazione record
$cn='localhost';//oppure il vostro servizio di host
$ut='root';//nome utente
$psw='vostraPassword';
$db='Nome Database';
$link = mysqli_connect($cn, $ut, $psw, $db);// provo a connettermi
if (!$link)
{
exit('problemi con la connessione');
}
$mysqli = new mysqli('localhost', 'root', 'isc', 'work');
require("griglia.php");//richiamo il file di costruzione della griglia
?>
Tutto Chiaro?
Vai alla costruzione griglia dinamica
Griglia dinamica in PHP

Una griglia di dati che, dinamicamente, si adatta ai dati e/o ai filtri che abbiamo deciso di impostare è l'argomento che ho deciso di postare oggi. Passo subito al codice.
<?php
//assegnerò questa variabile al pulsante AZ o ZA che assegna il campo a $filtr $filtr= @$_REQUEST['filtro'];>
$ordine= @$_REQUEST['ordine'];/assegnerò questa variabile al pulsante AZ o ZA che assegna il desc o asc alla query
$scelta = @$_POST['Gruppopulsantidiscelta1'];//questo è l'optionbutton selezionato
$den = @$_POST['cerca'];//questo sarà il "LIKE" della query SQL
#stabilisco le regole per il filtro dei dati
if ($scelta==''){$scelta=$Ordina; $miastringa='Nessun Filtro Attivo';}
else{$miastringa='Filtro Attivo per:' . ' ' . $scelta;};
if ($filtr=='') //se non sono stati premuti i tastini "az" o "za"...
{
$filtr=$Ordina . ' ' .'asc';
};
$filtro = $filtr . ' ' . $ordine;
#Quindi inizio a costruire la griglia
print "$miastringa";
<table bgcolor='FFFFCC' >";
echo"
<tr><th colspan='13'bgcolor='#FFFFcc'>$nometabella</th></tr>
<tr >
<th></th><th></th>";
$i=0;//scrivo le righe
while ($i <= $numerocolonne ){
echo"
<th bgcolor='6699ff' >$NomeCampo[$i]
<a title='AZ' href =\"{$_SERVER['PHP_SELF']}?filtro=$NomeCampo[$i]&ordine=ASC\"><img align='left'src='az.png'border='0'></a> </br>
<a title='ZA' href =\"{$_SERVER['PHP_SELF']}?filtro=$NomeCampo[$i]&ordine=DESC\"><img align='right' src='za.png'border='0'></a>
</th>";
++$i;
}
$result = mysqli_query($link, "SELECT * FROM $nometabella Where $scelta like'$den%'ORDER BY $filtro ");// effettuo la query
#(Come si può notare la query SQL è costruita su parametri che vengono passati dalle variabili
while ($row = mysqli_fetch_row($result))// eseguo la fetch dei risultati
{
echo "
<tr>
<th bgcolor=$col><a title='Modifica' $Modifica?id=$row[0]><img src='edit.png'border='0'></a> </th>
<th bgcolor=$col ><a title='Elimina' $Elimina?id=$row[0]><img src='drop.png' border='0'></a> </th>";
$n= 0;//scrivo i risultati della riga sulle colonne appropriate
while ($n <= $numerocolonne )
{
$replace=str_replace("°","'",$row[$n]);#trasformo gli ° in apostrofi poi spiego il perchè
echo "<th bgcolor=$col>$replace </th>";
++$n;
}
echo"</th>";
}//fine ciclo
mysqli_data_seek($result,0);// riporto il cursore della riga corrente a 0
mysqli_free_result($result);// chiudo il set dei risultati per liberare memoria
mysqli_close($link);// chiudo la connessione
?>
(