Ordinamento Crescente e Decrescente Tabella Dati a Mezzo Campo Linkato
Chiedo gentilmente aiuto per risolvere un problema di ordinamento crescente e decrescente di dati contenuti in una tabella realizzata con uno script php mysql dove ci sono due campi uno identificato come nome e il secondo cognome, io vorrei rendere cliccabili questi due campi e fare in modo che i dati che in essi sono contenuti vengano ordinati in modo crescente e decrescente , sperando nel vs aiuto , qui di seguito posto lo script grazie
Codice PHP:
<?php
mysql_connect("localhost", "utente", "password") or
die("Connessione non riuscita: " . mysql_error());
mysql_select_db("ninophp");
if($_POST)
{
$ids = isset($_POST['id']) ? $_POST['id'] : array();
elimina_record($ids);
}
elseif(isset($_GET['id']))
{
elimina_record(array($_GET['id']));
}
else
mostra_lista();
function mostra_lista()
{
// mostro un eventuale messaggio
if(isset($_GET['msg']))
echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
?>
<html>
<center>
<?
// preparo la query
$query = "SELECT id,nome,cognome FROM indirizzi";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
echo '
<form name="form1" method="post" action="">
<table bgcolor="#ffff99" border="1">
<tr bgcolor="#FF0000">
<th> </th>
<th>Nome</th>
<th>Cognome</th>
<th>Elimina</th>
<th> </th>
</tr>';
while ($row = mysql_fetch_assoc($result))
{
$nome = htmlentities($row['nome']);
$cognome = htmlentities($row['cognome']);
// preparo il link per la modifica dei dati del record
$link = $_SERVER['PHP_SELF'].'?id=' . $row['id'];
echo "<tr>
<td><input name=\"id[]\" type=\"checkbox\" value=\"$row[id]\" /></td>
<td>$nome</td>
<td>$cognome</td>
<td><center><a href=\"$link\"><img src=\"x.gif\"></a></center></td>
<tr>";
}
echo '</table>
<br />
<input type="submit" name="Submit" value="Elimina record selezionati" />
</form>';
?>
<CENTER><a href="menuprincipale.php" title="MENU PRINCIPALE">MENU PRINCIPALE</a></CENTER>
<?
// libero la memoria di PHP occupata dai record estratti con la SELECT
mysql_free_result($result);
// chiudo la connessione a MySQL
mysql_close();
}
function elimina_record($ids)
{
// verifico che almeno un id sia stato selezionato
if(count($ids) < 1)
{
$messaggio = urlencode("Nessun record selezionato!");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
exit;
}
// per precauzione converto gli ID in interi
$ids = array_map('intval',$ids);
// creo una lista di ID per la query
$ids = implode(',',$ids);
// preparo la query
$query = "DELETE FROM indirizzi WHERE id IN ($ids)";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
// conto il numero di record cancellati
$num_record = mysql_affected_rows();
// chiudo la connessione a MySQL
mysql_close();
$messaggio = urlencode("Numero record cancellati: $num_record");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
}
echo '
<table border="1">
<tr>
<th> </th>
<th>MENU</th>
<th> </th>
<td><a href="menuprincipale.php">menu</a></td>
<td><a href="inserire.php">Inserimento dati</a></td>
<th> </th>
</tr>';
?>
</center>
</html>
*Usa i tag appositi quando devi postare del codice*
problema di eliminazione più record in una sola volta
Ho rielaborato un po' lo script di ordinamento crescente e descrescente
con campi linkabili tutto ok , ma ora non mi funziona piu' il pulsante "Elimina record selezionati" , ho provato a selezionare con spunta in checkbox i vari record da cancellare , ma il pulsante creato non ha effetto su di loro , la cancellazione invece avviene cliccando l'immagine della x un record alla volta ( quello cmq mi sta bene che ci sia , ma non riesco a capire perchè non mi funziona piu' il pulsante "Elimina record selezionati" attendo gentile aiuto grazie rimetto nuovamente il listato
PS: chiedo scusa a tutti se involontariamente violo qualche regola di questo forum ma non sono molto pratico e non lo conosco ancora bene .
ecco lo script:
Codice PHP:
<?php
mysql_connect("localhost", "utente", "password") or
die("Connessione non riuscita: " . mysql_error());
mysql_select_db("ninophp");
if($_POST)
{
$ids = isset($_POST['id']) ? $_POST['id'] : array();
elimina_record($ids);
}
elseif(isset($_GET['id']))
{
elimina_record(array($_GET['id']));
}
else
mostra_lista();
function mostra_lista()
{
// mostro un eventuale messaggio
if(isset($_GET['msg']))
echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
}
$query = "select id,nome,cognome from indirizzi";
$rs = mysql_query($query) or die(mysql_error());
$num = mysql_num_rows($rs);
if ($num == 0)
echo "<div style=\"text-align:center\">Nessun contatto nella presente tabella</div>";
else
{
if(empty($_GET['ordercampo']))
$_GET['ordercampo'] = "id";
if(empty($_GET['order']))
$_GET['order'] = "asc";
if($_GET['order']=="asc") {$ordinaVerso = "desc";}
if($_GET['order']=="desc") {$ordinaVerso = "asc";}
$query = "select id,nome,cognome from indirizzi order by $_GET[ordercampo] $ordinaVerso ";
$rs = mysql_query($query) or die(mysql_error());
?>
<center><table bgcolor="#ffff99" border="1">
<tr bgcolor="#FF0000">
<td align="center"><strong>selez.</a></strong></td>
<td align="center"><strong><a href="ordina69.php?ordercampo=<?php echo 'nome' ?>&order=<?php echo $ordinaVerso ?>" title="Inverti ordinamento">nome</a></strong></td>
<td align="center"><strong><a href="ordina69.php?ordercampo=<?php echo 'cognome' ?>&order=<?php echo $ordinaVerso ?>" title="Inverti ordinamento">cognome</a></strong></td>
<td align="center"><strong>elimina</a></strong></td>
</tr></center>
<?php
while($results = mysql_fetch_array($rs))
{
$nome = htmlentities($results['nome']);
$cognome = htmlentities($results['cognome']);
$link = $_SERVER['PHP_SELF'].'?id=' . $results['id'];
echo "<tr>";
// $id = $results['id'];
;
echo "<td><input name=\"id[]\" type=\"checkbox\" value=\"$results[id]\" /></td>";
echo "<td width=\"35%\"> $results[nome]</td>";
echo "<td width=\"35%\"> $results[cognome]</td>";
echo "<td><center><a href=\"$link\"><img src=\"x.gif\"></a></center></td>";
echo "</tr>";
} //fine ciclo while
} //fine else nel caso ci sia almeno un contatto nel comune
function elimina_record($ids)
{
// verifico che almeno un id sia stato selezionato
if(count($ids) < 1)
{
$messaggio = urlencode("Nessun record selezionato!");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
exit;
}
// per precauzione converto gli ID in interi
$ids = array_map('intval',$ids);
// creo una lista di ID per la query
$ids = implode(',',$ids);
// preparo la query
$query = "DELETE FROM indirizzi WHERE id IN ($ids)";
// invio la query
$results = mysql_query($query);
// controllo l'esito
if (!$results) {
die("Errore nella query $query: " . mysql_error());
}
// conto il numero di record cancellati
$num_record = mysql_affected_rows();
// chiudo la connessione a MySQL
// mysql_close();
$messaggio = urlencode("Numero record cancellati: $num_record");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
}
echo '
<table border="1">
<input type="submit" name="Submit" value="Elimina record selezionati" />
<tr>
<th> </th>
<th>MENU</th>
<th> </th>
<td><a href="menuprincipale.php">menu</a></td>
<td><a href="inserire.php">Inserimento dati</a></td>
<th> </th>
</tr>';
?>
*usa i tag appropriati quando devi postare del codice*