Petit nouveau ! |
5 Messages
18 août 2010, 16:08
Salut Areusms,
j'ai essayé de faire fonctionner ce script ci dessous pour fairer monter et descendre un enregistrement dans une BDD... J'ai repris ta structure en essayant de l'adapter à mon besoin, mais après quelques heures de cogitation rien n'y fait... j'arrive à monter une ligne deux ou trois fois puis j'ai un message d'erreur, donc c'est pas bon. Et puis je n'arrive pas à attribuer un nouveau numéro de position à l'enregistrement positionné au dessus... Bref c'est la bérézina complête.
Pour info (si tu veux bien m'aider), j'ai créé une bdd "actualites" avec les champs "id", "description" et "position", que tu retrouves dans ce script.
Cette page est celle pour faire monter un enregistrement, je lui passe un numéro de ligne en paramêtre (php?monter_actu), car je séléctionne une ligne sur une page d'affichage standard que je veux déplacer vers le haut.
Merci de m'aider. Si tu trouve ce que j'ai fait tordu, pourrais tu complêter le script que tu a fais car d'après POM ca fonctionne bien. Si tu n'as pas le temps ou si tu ne souhaite pas répondre à ma demande préviens moi.
Merci, à bientôt j'espère.
Kris
PS : Pom, si tu tombes sur ce post, peut tu me donner un coup de main? Merci.
<?php
@mysql_connect("localhost", "root", "") or die("Connexion impossible");
@mysql_select_db("lancelot") or die("Echec de selection de la base");
?>
<?php
if(isset($_GET['monter_actu'])){
$monter_actu = $_GET['monter_actu'];
}
$req_positionCourante = "SELECT position FROM actualites WHERE id='".$monter_actu."' LIMIT 1";
$res_positionCourante = mysql_query($req_positionCourante);
$positionCourante = mysql_fetch_row($res_positionCourante);
$ancienne_position = $positionCourante[0];
echo $positionCourante[0];
$numero_ligne = $positionCourante[0];
?>
<?php
$req_positionSup = "SELECT id FROM actualites WHERE position < '".$ancienne_position."' order by position DESC LIMIT 1";
$res_positionSup = mysql_query($req_positionSup);
$tab_temp = array();
while ($positionSup = mysql_fetch_row($res_positionSup))
{
$tab_temp[] = $positionSup[0];
echo $positionSup[0];
}//pourquoi une boucle et un tableau ici?
$nouvelle_position = $positionSup[0];
?>
<?php
$requete = 'UPDATE actualites SET position = '.$nouvelle_position.' WHERE id = '.$numero_ligne.'';
mysql_query ($requete);
foreach ($tab_temp as $valeur)
{
$requete = 'UPDATE actualites SET position = position+1 WHERE id = '.$valeur.''; //$valeur = $nouvelle_position
mysql_query ($requete);
}
$res = mysql_query($requete) or die(mysql_error());
if ($requete)
{?>
<div class=confirme><?php echo 'L\'actualité \''.$resAff['titreItem'].'\' a bien été supprimée!<br/><a href="actu.php">Retour à la liste</a>';?></div>
<?php }
?>