Accueil > > > ARRANGEMENT DYNAMIQUE D'UN TABLEAU
ARRANGEMENT DYNAMIQUE D'UN TABLEAU
Information sur la source
Description
Bonjour, Ceci est ma toute première contribution, qui n'aurait pu se faire sans Anthomicro et ... . Merci à eux donc. Pour mon projet, j'avais besoin de créer un tableau, dans lequel les lignes pouvaient monter ou descendre dans le tableau, à volonté. Le nom de la table est important ; tous les champs de la table se termin par "_nomdelatable" ; un champ "clt_nomdelatable" est nécessaire. Cela se compose en 3 fichiers : list_divi.php (affichage du tableau), up.php (script de montée) et down.php (devinez ...) :
Source
code de list_divi.php :
<html>
<head>
<title></title>
</head>
<body>
<?php
/* Connexion et sélection de la base */
$link = mysql_connect("votre serveur", "login user", "password user")
or die("Impossible de se connecter");
// echo "Connexion réussie";
mysql_select_db("votre base") or die("Impossible de selectionner la base");
$query = "select * from divi order by clt_divi asc"; // ma table s'appelle comme ça
$result = mysql_query($query) or die("Query failed : $query");
?>
<table>
<?php
// création du tableau issu de la table
while ($divi = mysql_fetch_array($result)) { ?>
<tr>
<td bgcolor="<?php echo $divi['4']; ?>" colspan="1" rowspan="2"><a href="details.php?id_divi=<?php echo $divi['id_divi']; ?>"><img src="../images/details.gif" title="Afficher les détails" name="details" width="27" height="27" border="0" align="absmiddle" id="details"></a></td>
<td bgcolor="<?php echo $divi['4']; ?>" colspan="1" rowspan="2"><a href="update.php?id_divi=<?php echo $divi['id_divi']; ?>"><img src="../images/update.gif" title="Modifier l'enregistrement" name="details" width="27" height="27" border="0" align="absmiddle" id="details"></a></td>
<td bgcolor="<?php echo $divi['4']; ?>" colspan="1" rowspan="2"><a href="delete.php?id_divi=<?php echo $divi['id_divi']; ?>"><img src="../images/delete.gif" title="Supprimer l'enregistrement" name="details" width="27" height="27" border="0" align="absmiddle" id="details"></a></td>
<td bgcolor="<?php echo $divi['4']; ?>" colspan="1" rowspan="2"><?php echo $divi['1']; ?></td>
<td bgcolor="<?php echo $divi['4']; ?>" colspan="1" rowspan="2"><?php echo $divi['2']; ?></td>
<td bgcolor="<?php echo $divi['4']; ?>">
<form action='up.php' method='POST'> <?php /*formulaire pour monter une ligne*/ ?>
<input type='hidden' name="id_up" value="<?php echo $divi['0']; ?>" size="2"> <?php /*envoi de l'id de la ligne*/ ?>
<input type='hidden' name="clt_up" value="<?php echo $divi['3']; ?>" size="2"> <?php /*envoi du classement de la ligne*/ ?>
<input type='hidden' name="table_up" value="divi" size="2"> <?php /*envoi du nom de la table*/ ?>
<input type='image' src='../images/haut.gif' title='Monter' width='12' height='12' border='0' align='absmiddle'>
</form></td>
</tr>
<tr>
<td bgcolor="<?php echo $divi['4']; ?>">
<form action='down.php' method='POST'> <?php /*formulaire pour descendre une ligne*/ ?>
<input type='hidden' name="id_down" value="<?php echo $divi['0']; ?>" size="2"> <?php /*envoi de l'id de la ligne*/ ?>
<input type='hidden' name="clt_down" value="<?php echo $divi['3']; ?>" size="2"> <?php /*envoi du classement de la ligne*/ ?>
<input type='hidden' name="table_down" value="divi" size="2"> <?php /*envoi du nom de la table*/ ?>
<input type='image' src='../images/bas.gif' title='Descendre' width='12' height='12' border='0' align='absmiddle'>
</form>
</td>
</tr>
<?php } ?>
</table>
</body>
<?php
/* Fermeture de la connexion */
mysql_close($link);
?>
</html>
code du script up.php :
<?php
/* Connexion et sélection de la base */
$link = mysql_connect("votre serveur", "login user", "password user")
or die("Impossible de se connecter");
// echo "Connexion réussie";
mysql_select_db("votre base") or die("Impossible de selectionner la base");
// récupération des données poster par les mini-formulaires
$id = $_POST['id_up'];
$clt = $_POST['clt_up'];
$table = $_POST['table_up'];
//remplace clt_$table par clt_$table-1 pour la ligne considérée
$queryup1 = "UPDATE $table SET clt_$table=clt_$table-1 WHERE id_$table=$id";
$up1 = mysql_query($queryup1) or die("Query failed : $queryup1");
//remplace clt_$table par clt_$table+1 pour la ligne qui possédait le clt_$table remplacé par la première requete
$queryup2 = "UPDATE $table SET clt_$table=clt_$table+1 WHERE clt_$table=$clt-1 and id_$table != $id";
$up2 = mysql_query($queryup2) or die("Query failed : $queryup2");
/* Fermeture de la connexion */
mysql_close($link);
// retour vers le tableau
?>
<script language="javascript">
<!--
document.location.href="./list_<?php echo $table; ?>.php"
//-->
</script>
code du script down.php :
<?php
/* Connexion et sélection de la base */
$link = mysql_connect("votre serveur", "login user", "password user")
or die("Impossible de se connecter");
// echo "Connexion réussie";
mysql_select_db("votre base") or die("Impossible de selectionner la base");
// récupération des données poster par les mini-formulaires
$id = $_POST['id_down'];
$clt = $_POST['clt_down'];
$table = $_POST['table_down'];
//remplace clt_$table par clt_$table+1 pour la ligne considérée
$querydown1 = "UPDATE $table SET clt_$table=clt_$table+1 WHERE id_$table=$id";
$down1 = mysql_query($querydown1) or die("Query failed : $querydown1");
//remplace clt_$table par clt_$table-1 pour la ligne qui possédait le clt_$table remplacé par la première requete
$querydown2 = "UPDATE $table SET clt_$table=clt_$table-1 WHERE clt_$table=$clt+1 and id_$table != $id";
$down2 = mysql_query($querydown2) or die("Query failed : $querydown2");
/* Fermeture de la connexion */
mysql_close($link);
// retour vers le tableau
?>
<script language="javascript">
<!--
document.location.href="./list_<?php echo $table; ?>.php"
//-->
</script>
Conclusion
Bon ce n'est pas parfait. Il y a des redondances. Ce n'est franchement pas optimisé mais ça marche. L'idéale serait de ne pas recharger la page "list_divi.php" .... Encore une fois, c'est ma première contrib.
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson
Forum
MYSQL PROBLEMEMYSQL PROBLEME par remitete
Cliquez pour lire la suite par remitete
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|