Aide - Recherche - Membres - Calendrier
Version complète : mysql et php
Forum Webmaster - Ton Webmaster > Conception de sites > Programmation > MySql
stevelace
Bonjour, je voudrais savoir comment faire pour déplacer les enregistrements d'une colonne.



Ex monter et descentre les valeurs de la colonne 'id' :what:





Merci :toufou:
Oow
j'ai pas trop compris ce que tu veux faire ... :corne:



Tu peux expliquer (un exemple par exemple )



...

@+
stevelace
Voila une image qui démontre ce que je veux faire



user posted image



Les entrées sont stokées dans une base de donnée mysql



Sur mon script j'ai mis les fleches mais ne fonctionnent pas encore parce que jy arrive pas :what:
stevelace
Voici déja les codes faits pour aider :wink.gif







QUOTE

//supprimer une categorie ou un lien

if (isset($del)){

mysql_query ("DELETE FROM phpbb_coeur WHERE id = $del");

$querya=mysql_query("SELECT * FROM phpbb_coeur");

$nbreg=mysql_num_rows($querya);

$autoinc=$nbreg+1;

mysql_query ("ALTER TABLE phpbb_coeur auto_increment=$autoinc");

}

//Monter un lien

if (isset($moveup)){

$tempid='0';

$upper=$moveup-1;

if ($upper==0){

echo '<center><b><font color="red">Impossible de déplacer ce lien !</font></b></center>';

}

else{

mysql_query("UPDATE phpbb_coeur SET id=$tempid WHERE id= $upper");

mysql_query("UPDATE phpbb_coeur SET id=$upper WHERE id= $moveup");

mysql_query("UPDATE phpbb_coeur SET id=$moveup WHERE id=$tempid");

}}

//descendre un lien ex id5

if (isset($movedown)){

$querya=mysql_query("SELECT * FROM phpbb_coeur");

$nbreg=mysql_num_rows($querya);

$tempid='0';

$lower=$movedown+1;

if ($nbreg==$movedown){

echo '<center><b><font color="red">Impossible de déplacer ce lien !</font></b></center>';

}

else{

mysql_query("UPDATE phpbb_coeur SET id=$tempid WHERE id= $lower");

mysql_query("UPDATE phpbb_coeur SET id=$lower WHERE id= $movedown");

mysql_query("UPDATE phpbb_coeur SET id=$movedown WHERE id=$tempid");

}}

//insérer une categorie ou un lien

if ($tsend != ''){

mysql_query("INSERT INTO phpbb_coeur(titre, lien, icone) VALUES('$tsend','$lsend','$isend')");

}

//Updater les liens existants

if (isset($idup)){

mysql_query("UPDATE phpbb_coeur SET titre='$titre', lien='$lien', icone='$icone' WHERE id = $idup");

}

stevelace
J'usqu'ici, monter et descendre fonctionne mais :



Si je supprime une entrée de la base ex celui qui porte le id3,

le id3 n'existe plus mais le 4,5,6... oui.



ce que je veux maintenant, c'est que quand je supprime une entrée, toutes les entrées au id supérieurs baisse de 1 pour équilibrer le tout, pour que tous les id se suivent dans la table, pour que le id ne passent pas de 3à5 en sautant le 4





est-ce bien expliqué ? :toufou:



Merci pour votre aide :corne:
stevelace
C ok j'ai trouvé la solution mais si qqun en a une meilleure ou plus simple ne vous genez pas :biggrin.gif



QUOTE

//Monter un lien

//

if ($moveup!=""){

$tempid='0';

$upper=$moveup-1;

if ($upper==0){

echo '<center><b><font color="red">Impossible de déplacer ce lien !</font></b></center>';

}

else{

mysql_query("UPDATE phpbb_coeur SET id=$tempid WHERE id= $upper");

mysql_query("UPDATE phpbb_coeur SET id=$upper WHERE id= $moveup");

mysql_query("UPDATE phpbb_coeur SET id=$moveup WHERE id=$tempid");

}}









//descendre un lien

//

if ($movedown!=""){

$querya=mysql_query("SELECT * FROM phpbb_coeur");

$nbreg=mysql_num_rows($querya);

$tempid='0';

$lower=$movedown+1;

if ($nbreg==$movedown){

echo '<center><b><font color="red">Impossible de déplacer ce lien !</font></b></center>';

}

else{

mysql_query("UPDATE phpbb_coeur SET id=$tempid WHERE id= $lower");

mysql_query("UPDATE phpbb_coeur SET id=$lower WHERE id= $movedown");

mysql_query("UPDATE phpbb_coeur SET id=$movedown WHERE id=$tempid");

}}









//insérer une categorie ou un lien

//

if ($tsend != ""){

mysql_query("INSERT INTO phpbb_coeur(titre, lien, icone) VALUES('$tsend','$lsend','$isend')");

}









//Updater les liens existants

//

if ($idup!=""){

mysql_query("UPDATE phpbb_coeur SET titre='$titre', lien='$lien', icone='$icone' WHERE id = $idup");

}







//supprimer une categorie ou un lien

//

if ($del!=""){

mysql_query ("DELETE FROM phpbb_coeur WHERE id = $del");

$querya=mysql_query("SELECT * FROM phpbb_coeur");

while($lids=mysql_fetch_array($querya)){

$lidsa=$lids['id'];

if($lidsa > $del){

$autoupdate=$lidsa-1;

mysql_query ("UPDATE phpbb_coeur SET id=$autoupdate WHERE id = $lidsa");

}

}

$querya=mysql_query("SELECT * FROM phpbb_coeur");

$nbreg=mysql_num_rows($querya);

$autoinc=$nbreg;

mysql_query ("ALTER TABLE phpbb_coeur auto_increment=$autoinc");

}







C\'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d\'information, la mise en page et les images, veuillez cliquez ici.
Invision Power Board © 2001-2012 Invision Power Services, Inc.