Avatar billede artico Novice
18. februar 2005 - 23:09 Der er 12 kommentarer og
1 løsning

sorter efter overskrift

Jeg har et DBúdtræk med nogle overskrifter på tabellerne, jeg vil gerne klikke på overskriften i tabellen og have data vist stigende og faldende ? Hvordan gør jeg det ?
Avatar billede jakobdo Ekspert
18. februar 2005 - 23:14 #1
ORDER BY overskrift
ORDER BY nogetandet
ORDER BY nogettredje
Avatar billede jakobdo Ekspert
18. februar 2005 - 23:17 #2
Og du kunne jo lave det i stil med:

<?

$sorter = $_GET['sort'];
$query = mysql_query("SELECT * FROM table ORDER BY ".$sorter);
while($row=mysql_fetch_assoc())
{
echo $row['overskrift'] . " - " . $row['forfatter'];
}
?>
Avatar billede jakobdo Ekspert
18. februar 2005 - 23:18 #3
Og i toppen af siden, skal du så have links:

<a href="./minside.php?sort=overskrift">Overskrift</a>
<a href="./minside.php?sort=forfatter">Forfatter</a>
<a href="./minside.php?sort=dato">Dato</a>

osv...
Avatar billede artico Novice
18. februar 2005 - 23:18 #4
Ok.. men hvordan ser linket på (tekst) overskriften så ud ?
Avatar billede artico Novice
18. februar 2005 - 23:20 #5
var lige lidt for hurtig :-)))
Avatar billede jakobdo Ekspert
18. februar 2005 - 23:23 #6
Jeg ville nok smide det hele i en tabel!

så det bliver i stil med:

<table>
<tr><th><a href="./minside.php?sort=1">Overskrift</a></th>
<th><a href="./minside.php?sort=2">Forfatter</a></th>
<th><a href="./minside.php?sort=3">Dato</a></th></tr>
<?

switch($_GET['sort'])
{
case 1:
  $sorter = "overskrift";
  break;
case 2:
  $sorter = "forfatter";
  break;
case 3:
  $sorter = "dato";
  break;
default:
  $sorter = "id";
}
$query = mysql_query("SELECT * FROM table ORDER BY ".$sorter);
while($row=mysql_fetch_assoc())
{
echo "<tr><td>" . $row['overskrift'] . "</td></td>" . $row['forfatter'] . "</td><td>" . $row['dato'] . "</td></tr>";
}
?>
</table>
Avatar billede jakobdo Ekspert
18. februar 2005 - 23:24 #7
PS: Gem filen som minside.php (husk også at oprette forbindelse til din MYSQL)
Avatar billede artico Novice
20. februar 2005 - 21:33 #8
Jeg har denne kode i forvejen som jeg gerne vil have den ind i,, men det virker ikke, kan du se hvorfor ??

if(isset($_GET['slet']))  {
$id = addslashes($_GET['slet']);
  mysql_query("DELETE FROM opgaver WHERE id = '$id'") or die ("Der er sket en fejl: ".mysql_error());
  }
 
$result = mysql_query("SELECT *,date_format(oprettet, '%d.%m.%Y ') AS oprettet,date_format(deadline, '%d.%m.%Y ') AS deadline,left(opgave ,30) as opgave FROM opgaver order by oprettet asc");


{

}


echo " <table border=\"0\" cellpadding=\"4\" cellspacing=\"1\" border-collapse >";
   
    $topcellebg = "#bededd";
    echo " <tr>";
    echo " <td colspan=\"11\" height=\"40\" bgcolor=\"#f5f5f5\" align=\"right\"><a href =\"java script:nytvindue3('opgaver/opgave_liste.php')\">Udskriv alle opgaver</a> | <a href=\"index.php?nx=opgaver/opret_opgave\">Opret opgave</a></td>";
    echo " </tr>";
                               
    echo " <tr bgcolor=\"$topcellebg\">";
    echo " <td bgcolor=\"$topcellebg\">Vælg</td>";
    echo " <td bgcolor=\"$topcellebg\">Id</td>";
    echo " <td bgcolor=\"$topcellebg\"><a href='$_PHP_SELF?sort=1&nx=opgaver/opgaver'>oprettet</a></td>";                                       
    echo " <td bgcolor=\"$topcellebg\"><a href='$_PHP_SELF?sort=2&nx=opgaver/opgaver'>gruppe</a></td>";
    echo " <td bgcolor=\"$topcellebg\"><a href='$_PHP_SELF?sort=3&nx=opgaver/opgaver'>menupunkt</a></td>";
    echo " <td bgcolor=\"$topcellebg\">opgave</td>";
    echo " <td bgcolor=\"$topcellebg\"><a href='$_PHP_SELF?sort=4&nx=opgaver/opgaver'>deadline</a></td>";
    echo " <td bgcolor=\"$topcellebg\"></td>";
    echo " <td bgcolor=\"$topcellebg\"></td>";
    echo " <td bgcolor=\"$topcellebg\"></td>";
    echo " <td bgcolor=\"$topcellebg\"></td>";
  if (mysql_num_rows($result) > 0) {
    while($row = mysql_fetch_assoc($result)) {
   
  switch($_GET['sort'])
{
case 1:
  $sorter = "oprettet";
  break;
case 2:
  $sorter = "gruppe";
  break;
case 3:
  $sorter = "menupunkt";
  break;
case 4:
  $sorter = "deadline";
}
$query = mysql_query("SELECT * FROM opgaver ORDER BY ".$sorter);
while($row = mysql_fetch_assoc($result))
{                                               
                                echo "    </tr>";

    $bgcolor =  $color++%2?"F5F5F5":"e9e9e9";
    echo "    <tr bgcolor=\"$bgcolor\">\n";
    echo "    <td align=\"center\" valign=\"center\"><input type=\"checkbox\" name=\"valg\" value=\"valg_mester\"></td>\n";
    echo "    <td valign=\"top\">$row[id]</td>\n";
    echo "    <td align=\"right\" valign=\"top\">$row[oprettet]</td>\n";
    echo "    <td valign=\"top\">$row[gruppe]</td>\n";
    echo "    <td valign=\"top\">$row[menupunkt]</td>\n";
    echo "    <td valign=\"top\"><a href='$_PHP_SELF?id=".$row[id]."&nx=opgaver/ret_opgave'>$row[opgave]...</a></td>\n";
    echo "    <td align=\"right\" valign=\"top\">$row[deadline]</td>\n";
 
                     
    echo "  <td align=\"center\" valign=\"center\"> <a href=\"#\"><img src=\"img/ikon_suspender.jpg\" alt=\"Suspender\" border=\"0\"></a></td>\n";        //'$_PHP_SELF?id=".$row[id]."&slet&nx=opgaver/opgaver
    echo "    <td  align=\"center\" valign=\"center\"><a href='$_PHP_SELF?slet=".$row[id]."&nx=opgaver/opgaver'><img src=\"img/ikon_slet.jpg\" border=/\"0\"></a></td>\n";       
 
    echo "    <td align=\"center\" valign=\"center\"><a href =\"java script:nytvindue3('opgaver/opgaveseddel.php?id=$row[id]')\"><img src=\"img/ikon_udskriv.jpg\" border=\"0\"></a></td>\n";
       
    echo "  <td align=\"center\" valign=\"center\"><a href =\"#\"><img src=\"img/ikon_vismere.jpg\" alt=\"Vis mere\" border=\"0\"></a></td>\n";
   
   
        }
  }
  }
 
  echo "</table>";
 
         
  ?>
Avatar billede jakobdo Ekspert
21. februar 2005 - 08:46 #9
Prøv lige denne kode:

if(isset($_GET['slet']))
{
    $id = addslashes($_GET['slet']);
    mysql_query("DELETE FROM opgaver WHERE id = '$id'") or die ("Der er sket en fejl: ".mysql_error());
}

switch($_GET['sort'])
{
    case 1:
        $sorter = "oprettet";
        break;
    case 2:
        $sorter = "gruppe";
        break;
    case 3:
        $sorter = "menupunkt";
        break;
    case 4:
        $sorter = "deadline";
}

$result = mysql_query("SELECT *,date_format(oprettet, '%d.%m.%Y ') AS oprettet,date_format(deadline, '%d.%m.%Y ') AS deadline,left(opgave ,30) as opgave FROM opgaver order by ".$sorter." asc");

echo " <table border=\"0\" cellpadding=\"4\" cellspacing=\"1\" border-collapse >";
$topcellebg = "#bededd";
echo " <tr>";
echo " <td colspan=\"11\" height=\"40\" bgcolor=\"#f5f5f5\" align=\"right\"><a href =\"java script:nytvindue3('opgaver/opgave_liste.php')\">Udskriv alle opgaver</a> | <a href=\"index.php?nx=opgaver/opret_opgave\">Opret opgave</a></td>";
echo " </tr>";
echo " <tr bgcolor=\"$topcellebg\">";
echo " <td bgcolor=\"$topcellebg\">Vælg</td>";
echo " <td bgcolor=\"$topcellebg\">Id</td>";
echo " <td bgcolor=\"$topcellebg\"><a href='$_PHP_SELF?sort=1&nx=opgaver/opgaver'>oprettet</a></td>";                                     
echo " <td bgcolor=\"$topcellebg\"><a href='$_PHP_SELF?sort=2&nx=opgaver/opgaver'>gruppe</a></td>";
echo " <td bgcolor=\"$topcellebg\"><a href='$_PHP_SELF?sort=3&nx=opgaver/opgaver'>menupunkt</a></td>";
echo " <td bgcolor=\"$topcellebg\">opgave</td>";
echo " <td bgcolor=\"$topcellebg\"><a href='$_PHP_SELF?sort=4&nx=opgaver/opgaver'>deadline</a></td>";
echo " <td bgcolor=\"$topcellebg\"></td>";
echo " <td bgcolor=\"$topcellebg\"></td>";
echo " <td bgcolor=\"$topcellebg\"></td>";
echo " <td bgcolor=\"$topcellebg\"></td>";
if (mysql_num_rows($result) > 0)
{
    while($row = mysql_fetch_assoc($result))
    {                                             
        echo "    </tr>";
      $bgcolor =  $color++%2?"F5F5F5":"e9e9e9";
        echo "    <tr bgcolor=\"$bgcolor\">\n";
        echo "    <td align=\"center\" valign=\"center\"><input type=\"checkbox\" name=\"valg\" value=\"valg_mester\"></td>\n";
        echo "    <td valign=\"top\">$row[id]</td>\n";
        echo "    <td align=\"right\" valign=\"top\">$row[oprettet]</td>\n";
        echo "    <td valign=\"top\">$row[gruppe]</td>\n";
        echo "    <td valign=\"top\">$row[menupunkt]</td>\n";
    echo "    <td valign=\"top\"><a href='$_PHP_SELF?id=".$row[id]."&nx=opgaver/ret_opgave'>$row[opgave]...</a></td>\n";
    echo "    <td align=\"right\" valign=\"top\">$row[deadline]</td>\n";
    echo "  <td align=\"center\" valign=\"center\"> <a href=\"#\"><img src=\"img/ikon_suspender.jpg\" alt=\"Suspender\" border=\"0\"></a></td>\n";        //'$_PHP_SELF?id=".$row[id]."&slet&nx=opgaver/opgaver
    echo "    <td  align=\"center\" valign=\"center\"><a href='$_PHP_SELF?slet=".$row[id]."&nx=opgaver/opgaver'><img src=\"img/ikon_slet.jpg\" border=/\"0\"></a></td>\n";     
    echo "    <td align=\"center\" valign=\"center\"><a href =\"java script:nytvindue3('opgaver/opgaveseddel.php?id=$row[id]')\"><img src=\"img/ikon_udskriv.jpg\" border=\"0\"></a></td>\n";
    echo "  <td align=\"center\" valign=\"center\"><a href =\"#\"><img src=\"img/ikon_vismere.jpg\" alt=\"Vis mere\" border=\"0\"></a></td>\n";
    }
}
echo "</table>";

?>
Avatar billede artico Novice
21. februar 2005 - 09:41 #10
Den gir en fejl:
mysql_num_rows(): supplied argument is not a valid MySQL result resource

i denne linie (46):
if (mysql_num_rows($result) > 0)
Avatar billede jakobdo Ekspert
21. februar 2005 - 10:13 #11
Prøv at ret dette

switch($_GET['sort'])
{
    case 1:
        $sorter = "oprettet";
        break;
    case 2:
        $sorter = "gruppe";
        break;
    case 3:
        $sorter = "menupunkt";
        break;
    case 4:
        $sorter = "deadline";
}

    case 4:
Skal rettes til:
    default:
Avatar billede artico Novice
21. februar 2005 - 10:29 #12
100 tak :-) det fungere, post et svar og der er udbetaling :-)
Avatar billede jakobdo Ekspert
21. februar 2005 - 10:59 #13
Svar...
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