Komische Sache

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Komische Sache

    ...die ich da machen will? Ich versuchs mal, zu erklären:
    Ich hab einen Anfang einer Tabelle. Diese wird statisch generiert, weil die Tabellenüberschriften immer gleich sind. Hier mal der Quellcode:
    PHP Code:
    <?php
    echo "<table width=\"100%\" height=\"50%\"border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
      <tr>
        <td width=\"15%\"><div align=\"center\"><b>Name</div></td>  
        <td width=\"18%\"><div align=\"center\"><b>Strasse</div></td>
        <td width=\"3%\"><div align=\"center\"><b>Postfach</div></td>
        <td width=\"15%\"><div align=\"center\"><b>Ort</div></td>
        <td width=\"15%\"><div align=\"center\"><b>Telefon</div></td>
        <td width=\"20%\"><div align=\"center\"><b>Telefax</div></td>
        <td width=\"6%\"><div align=\"center\"><b>E-Mail</div></td>
        <td width=\"8%\"><div align=\"center\"><b>Internet</b></div></td>
      </tr>"
    ;
    $ResultPointer mysql_query("SELECT * FROM T_Kundendaten");
    show($ResultPointer);
    ?>
    So. Dann wird der Rumpf der Tabelle dynamisch generiert, weil die Inhalte aus der DB kommen und dort eingefügt werden. Hierfür habe ich das Ganze aus Modularisierungsgründen in eine Funktion show($ResultPointer) geschrieben.

    Nun soll aber folgendes passieren:
    Wenn ich auf Name klicke (oder einer kleinen Grafik rechts neben "Name"), dann soll der dynamisch generierte Teil nach dem Namen sortiert werden.
    Wenn ich auf Strasse klicke, dann soll das Ganze nach Strasse sortiert werden.

    Hört sich ganz üblich an, mir fehlt aber das Tüpfelchen auf dem "i" zum Umsetzen. Ich wollte das Ganze mit einer switch...case-Anweisung umsetzen, bei der dann ausgewählt wird, nach welcher Spalte sortiert werden kann. Dabei müssen ja unterschiedliche SQL-Anweisungen ausgeführt werden.

    Weiß da jemand Rat?
    Geht nich, gibts nich!
    God is real...unless declared as integer!

  • #2
    Du hast die Lösung doch selbst schon geschreiben :-) Wo ist jetzt das Problem?

    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Comment


    • #3
      Die Umsetzung. Ich weiß leider nicht genau, wie man das Ganze umsetzt.
      Also wenn ich eine bestimmte Variable habe und dann mittels 'ner switch...case-Anweisung auswerten will, dann ist es ja einfach.

      Aber hier klicke ich ja sozusagen auf einen Link, der dann ausgewertet wird, das ist meiner Meinung nach ja was anderes, da weiß ich nicht wie's geht
      Geht nich, gibts nich!
      God is real...unless declared as integer!

      Comment


      • #4
        PHP Code:
        switch (trim($_GET['link']))
        {
          case 
        "name"$sql 'NAME';
          break;
          case 
        "Wasanderes"$sql 'Wasanderes';
          break;
          default: 
        $sql "";
        }

        if(!empty
        $sql))
          
        $query " select * from tabelle order by ".$sql;
        else
          
        $query "select * from tabelle"
        h.a.n.d.
        Schmalle

        http://impressed.by
        http://blog.schmalenberger.it



        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
        ... nur ohne :-)

        Comment


        • #5
          wie wärs mit parameter übergeben?

          klick auf "name" => blabla.php?sortby=name
          klick auf "straße" => blabla.php?sortby=strasse

          und dann per switch($_GET['sortby']) auswerten? wo ist das problem?

          auserdem frag ich mich wieso du jeden feldnamen in ein div setzt Oo. das geht doch auch anderst.

          EDIT:
          och schmalle *grml*
          haha kropf!

          MfG
          aim
          Lies mich jetzt!
          - OT-Tags-Liebhaber und BB-Code-Einrücker -

          Comment


          • #6
            übergibt doch einfach einen parameter
            PHP Code:
            echo '<a href="'.$_SERVER['PHP_SELF'].'&param='.$param.'">'
            und dann per
            PHP Code:
            $_GET['param'
            verarbeiten.

            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Comment


            • #7
              Dieses "$_GET["link"]" kommt aber nicht in der Datenbank vor als Feldname.
              Hm, wobei ich glaube ich den PHP-Teil verstanden habe, weiß ich immer noch nicht, wie ich denn den Link mache...

              Code:
              <td........><a href=[i]und dann??[/i]>Name</a></td>
              Oder müsste es:
              <td....><a href="#name">Name</a></td> heißen?

              Oh man ich bin komplett verwirrt.....
              Geht nich, gibts nich!
              God is real...unless declared as integer!

              Comment


              • #8
                Hmm, okay...danke schonmal! Ich glaub, damit kann ich was anfangen!
                DANKE!!!!!!!!
                Geht nich, gibts nich!
                God is real...unless declared as integer!

                Comment


                • #9
                  Hm, also ich hab mir eure Beispiele zu Herzen genommen und das mal ausprobiert. Rausgekommen ist dabei folgendes:

                  PHP Code:
                  <?php
                  echo "<table width=\"100%\" height=\"50%\"border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
                    <tr>
                      <td width=\"15%\"><div align=\"center\"><b><a href='"
                  .$_SERVER['PHP_SELF']."&param=".$param."'>Name</a></div></td>  
                      <td width=\"18%\"><div align=\"center\"><b>Strasse</div></td>
                      <td width=\"3%\"><div align=\"center\"><b>Postfach</div></td>
                      <td width=\"15%\"><div align=\"center\"><b>Ort</div></td>
                      <td width=\"15%\"><div align=\"center\"><b>Telefon</div></td>
                      <td width=\"20%\"><div align=\"center\"><b>Telefax</div></td>
                      <td width=\"6%\"><div align=\"center\"><b>E-Mail</div></td>
                      <td width=\"8%\"><div align=\"center\"><b>Internet</b></div></td>
                    </tr>"
                  ;

                  switch (
                  $_GET['param'])
                  {
                    case 
                  "Name":
                    { 
                  $sql 'Name';
                      break;
                  }
                    default:
                    {
                      
                  $ResultPointer="";
                    }
                  }

                  if(!empty (
                  $sql))
                  $ResultPointer mysql_query("SELECT * FROM T_Kundendaten ORDER BY ".$sql."");
                  else 
                  $ResultPointer mysql_query("SELECT * FROM T_Kundendaten");

                  show($ResultPointer);
                  ?>
                  Tatsächlich passiert da aber nix, wenn ich mir die Tabelle anschaue und auf "Name" klicke. Wo könnte denn der Fehler liegen, ich kann den leider nicht finden....
                  Geht nich, gibts nich!
                  God is real...unless declared as integer!

                  Comment


                  • #10
                    Tatsächlich passiert da aber nix
                    das ist nicht möglich.

                    kannst du selbstständig debuggen?
                    Die Zeit hat ihre Kinder längst gefressen

                    Comment


                    • #11
                      $param wird leer sein, wenn du den Link damit ausgibst.

                      Btw: Was soll das im default{} und wie baust du denn die Query zusammen (...$sql."")?

                      Comment


                      • #12
                        Selbständig debuggen? Wie denn das? - Aber das impliziert schon ein "nein".

                        Wenn ich dann auf "Name" klicke, wird die URL http://............/../data.php?param=Name aufgerufen

                        Diese Datei data.php ist die Datei in der sich alles abspielt, die Tabelle also drin ist etc. Wenn die URL aufgerufen wird, so kommt eine 404-error-Seite.
                        Geht nich, gibts nich!
                        God is real...unless declared as integer!

                        Comment


                        • #13
                          Original geschrieben von onemorenerd
                          $param wird leer sein, wenn du den Link damit ausgibst.

                          Btw: Was soll das im default{} und wie baust du denn die Query zusammen (...$sql."")?
                          Sorry, ihr wart schneller, hab inzwischen ein paar kleine Veränderungen durchgeführt, das Ergebnis ist aber das gleiche:

                          PHP Code:
                          <?php
                          echo "<table width=\"100%\" height=\"50%\"border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
                            <tr>
                              <td width=\"15%\"><div align=\"center\"><b><a href='"
                          .$_SERVER['PHP_SELF']."&param=Name'>Name</a></div></td>  
                              <td width=\"18%\"><div align=\"center\"><b>Strasse</div></td>

                          .
                          .
                          .
                          }
                            default:
                            {
                              
                          $sql="";
                            }
                          }

                          if(!empty (
                          $sql))
                          $ResultPointer = mysql_query("SELECT FROM T_Kundendaten ORDER BY ".$sql."");
                          else 
                          $ResultPointer = mysql_query("SELECT FROM T_Kundendaten");

                          show(
                          $ResultPointer);
                          ?>
                          So siehts jetzt aus. "param" ist nicht mehr leer, aber geändert hat sich leider nix

                          Btw: In der Funktion show, welche die Variable $ResultPointer übergibt, werden die Tabelleninhalte dynamisch ausgelesen...
                          Geht nich, gibts nich!
                          God is real...unless declared as integer!

                          Comment


                          • #14
                            PHP Code:
                            <?php
                            echo "...<a href='{$_SERVER['PHP_SELF']}?param=Name'>Name</a>...";
                            echo 
                            "...<a href='{$_SERVER['PHP_SELF']}?param=Strasse'>Strasse</a>...";

                            $sql 'SELECT * FROM T_Kundendaten';
                            switch (
                            $_GET['param']) {
                              case 
                            'Name': {
                                
                            $sql .= ' ORDER BY Name';
                                break;
                              }
                              case 
                            'Strasse': {
                                
                            $sql .= ' ORDER BY Strasse';
                                break;
                              }
                            }

                            $ResultPointer mysql_query($sql);
                            show($ResultPointer);
                            Wenn es die Spalten Name und Strasse tatsächlich gibt, dann sollte das gehen.

                            Comment


                            • #15
                              Original geschrieben von onemorenerd
                              Wenn es die Spalten Name und Strasse tatsächlich gibt, dann sollte das gehen.
                              Geil, es hat funktioniert!!!! Jetzt such ich nur noch meinen Fehler raus, damit ich's auch verstehe und dann....

                              [COLOR=crimson]DANKE!! [/COLOR]
                              Geht nich, gibts nich!
                              God is real...unless declared as integer!

                              Comment

                              Working...
                              X