Avatar billede zib Nybegynder
04. december 2005 - 17:16 Der er 9 kommentarer og
1 løsning

sortering virker ikke helt

jeg er igang mad at prøve og lave så det jeg kan trykke på op/ned og så skulle emnet flytte en op/ned
men ned kanppen driller!
jeg kan ikke få ned knappen til at virke!
op knappen virker fint

test1.php


$res = mysql_query("SELECT * FROM cms_forum_emner order by emne_order");
while ($row = mysql_fetch_array($res)){
echo $row[emne_navn]." - <a href='blah.php?gor=op&order=".$row[emne_order]."&id=".$row[emne_id]."'>Op</a>/<a href='blah.php?gor=ned&order=".$row[emne_order]."&id=".$row[emne_id]."'>Ned</a><br>";
}


$q = mysql_query("select * from `cms_forum_emner` order by `emne_order` asc");
$num = mysql_num_rows($q);

while($d = mysql_fetch_array($q)){
    if(!($d['emne_order'] == $sort)){
        mysql_query("update `cms_forum_emner` set `emne_order` = '$sort' where `emne_id`='".$d['emne_id']."'");
        }
    $sort++;
}



blah.php


if($gor == 'op'){
$op = $_GET[order]-1;
$ned = $_GET[order];


mysql_query("UPDATE cms_forum_emner set emne_order = '11111111111111111111' where emne_order = '$op'");
mysql_query("UPDATE cms_forum_emner set emne_order = '$op' where emne_order = '$ned'");
mysql_query("UPDATE cms_forum_emner set emne_order = '$ned' where emne_order = '11111111111111111111'");



}


if($gor == 'ned'){
$op = $_GET[order]+1;
$ned = $_GET[order];


mysql_query("UPDATE cms_forum_emner set emne_order = '11111111111111111111' where emne_order = '$op'");
mysql_query("UPDATE cms_forum_emner set emne_order = '$op' where emne_order = '$ned'");
mysql_query("UPDATE cms_forum_emner set emne_order = '$ned' where emne_order = '11111111111111111111'");



}
?>
Avatar billede jakobdo Ekspert
04. december 2005 - 19:03 #1
Må jeg se din tabel-struktur?
Avatar billede zib Nybegynder
04. december 2005 - 19:13 #2
ja

CREATE TABLE `cms_forum_emner` (
  `emne_id` int(10) unsigned NOT NULL auto_increment,
  `emne_navn` varchar(250) NOT NULL default '',
  `emne_order` tinyint(100) NOT NULL default '',
  PRIMARY KEY  (`emne_id`)
) TYPE=MyISAM AUTO_INCREMENT=6 ;



systemet kan ses her
http://4boys.4b.funpic.org/cms/admin/test1.php
Avatar billede jakobdo Ekspert
04. december 2005 - 19:49 #3
Jeg kigger på det senere (nok desværre ikke i dag, men i løbet af i morgen)
Avatar billede zib Nybegynder
04. december 2005 - 19:53 #4
det er helt fint tak
Avatar billede jakobdo Ekspert
05. december 2005 - 13:10 #5
Det kan måske laves smartere, men se her: http://www.codebreaker.dk/exp/669557.php
Avatar billede zib Nybegynder
05. december 2005 - 17:10 #6
kan ikke helt få det til at virker

mi kode




if(is_numeric($_GET['id']) && !empty($_GET['sort']))
{
    $currentSort = 0;
    $currentID = mysql_real_escape_string($_GET['id']);
   
    $moveSort = 0;
    $moveID = 0;
   
    $query = mysql_query("SELECT emne_id FROM cms_forum_emner WHERE emne_id = " . $currentID . " LIMIT 1");
    if(mysql_num_rows($query)>0)
    {
        $currentSort = mysql_result($query,0);
    }
   
    switch($_GET['sort'])
    {
        case "op":
            $query = mysql_query("SELECT emne_id, emne_order FROM cms_forum_emner WHERE emne_order < ".$currentSort." ORDER BY emne_order DESC LIMIT 1");
            break;
        case "ned":
            $query = mysql_query("SELECT emne_id, emne_order FROM cms_forum_emner WHERE emne_order > ".$currentSort." ORDER BY emne_order ASC LIMIT 1");
            break;
        default:
            $moveSort = 0;
            $moveID = 0;
    }
   
    if(mysql_num_rows($query)>0)
    {
        $row      = mysql_fetch_assoc($query);
        $moveID  = $row['emne_id'];
        $moveSort = $row['emne_order'];
    }
   
    if($moveSort > 0)
    {
        $query = mysql_query("UPDATE cms_forum_emner SET emne_order = ".$moveSort." WHERE emne_id = ".$currentID." LIMIT 1");
        $query = mysql_query("UPDATE cms_forum_emner SET emne_order = ".$currentSort." WHERE emne_id = ".$moveID." LIMIT 1");
    }
}

echo "<table>";
$query = mysql_query("SELECT * FROM cms_forum_emner ORDER BY emne_order");
if(mysql_num_rows($query)>0)
{
   
    while($row = mysql_fetch_assoc($query))
    {
        echo "<tr><td>" . $row['emne_navn'] . "</td><td><a href=\"".$_SERVER['PHP_SELF']."?id=".$row['emne_order']."&sort=op\">OP</a>&nbsp;|&nbsp;<a href=\"".$_SERVER['PHP_SELF']."?id=".$row['emne_order']."&sort=ned\">NED</a></td></tr>\n";
    }
   
}
else
{
    echo "<tr><td>Ingen nyheder</td></tr>\n";
}
echo "</table>";


?>
Avatar billede zib Nybegynder
05. december 2005 - 18:25 #7
det virker næsten nu, men ikke helt!
ned linkene virker

prøv selv at trykke på link nr 2 op
så sker der intet! men hvis du trykker
link 3 op så rykker den en op

http://4boys.4b.funpic.org/cms/admin/test2.php



if(is_numeric($_GET['emne_id']) && !empty($_GET['emne_order']))
{
    $currentSort = 0;
    $currentID = mysql_real_escape_string($_GET['emne_id']);
   
    $moveSort = 0;
    $moveID = 0;
   
    $query = mysql_query("SELECT emne_order FROM cms_forum_emner WHERE emne_id = " . $currentID . " LIMIT 1");
    if(mysql_num_rows($query)>0)
    {
        $currentSort = mysql_result($query,0);
    }
   
    switch($_GET['emne_order'])
    {
        case "op":
            $query = mysql_query("SELECT emne_id, emne_order FROM cms_forum_emner WHERE emne_order < ".$currentSort." ORDER BY emne_order DESC LIMIT 1");
            break;
        case "ned":
            $query = mysql_query("SELECT emne_id, emne_order FROM cms_forum_emner WHERE emne_order > ".$currentSort." ORDER BY emne_order ASC LIMIT 1");
            break;
        default:
            $moveSort = 0;
            $moveID = 0;
    }
   
    if(mysql_num_rows($query)>0)
    {
        $row      = mysql_fetch_assoc($query);
        $moveID  = $row['emne_id'];
        $moveSort = $row['emne_order'];
    }
   
    if($moveSort > 0)
    {
        $query = mysql_query("UPDATE cms_forum_emner SET emne_order = ".$moveSort." WHERE emne_id = ".$currentID." LIMIT 1");
        $query = mysql_query("UPDATE cms_forum_emner SET emne_order = ".$currentSort." WHERE emne_id = ".$moveID." LIMIT 1");
    }
}

echo "<table>";
$query = mysql_query("SELECT * FROM cms_forum_emner ORDER BY emne_order");
if(mysql_num_rows($query)>0)
{
   
    while($row = mysql_fetch_assoc($query))
    {
        echo "<tr><td>" . $row['emne_navn'] . "</td><td><a href=\"".$_SERVER['PHP_SELF']."?emne_id=".$row['emne_id']."&emne_order=op\">OP</a>&nbsp;|&nbsp;<a href=\"".$_SERVER['PHP_SELF']."?emne_id=".$row['emne_id']."&emne_order=ned\">NED</a></td></tr>\n";
    }
   
}
else
{
    echo "<tr><td>Ingen nyheder</td></tr>\n";
}
echo "</table>";



?>
Avatar billede zib Nybegynder
05. december 2005 - 18:37 #8
fik det til at virke..!
det var fordi en af min emne_order startede med 0 og det måtte den åbentbart´ ikke.. så smid et svar
Avatar billede jakobdo Ekspert
05. december 2005 - 20:14 #9
Svar!
Avatar billede jakobdo Ekspert
07. december 2005 - 17:59 #10
Takker for point!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester