Variable per klick auf Bild übergeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variable per klick auf Bild übergeben

    Hallo! Habe ein Problem. Ich möchte meine Ausgaube aus den Tabellen sorieren.

    Dazu benutz ich ja Select * From $table ORDER BY TABELLENNAME

    Wenn ich nun aber ein Navigationsmenu habe mit dem ich 8 verschiedene sortierkriterien habe müsste ich jedesmal ein Funktion dafür anlegen. Da ich etwas viel html noch mit dabei habe wird das dings riesig.

    Die sortierung sollte folgendermasen aufgebaut sein:

    8 verschiedene Tabellen, wobei 8 mal aufwärts und 8 mal abwärts sortiert werden sollte. Ich möchte 2 funktionen haben, einmal mit

    SELECT * FROM $table ORDER BY $variable1

    und

    SELECT * FROM $table ORDER BY $variable2 DESC

    leider hab ich nu überhaupt keinen Plan wie ich das anstellen könnte.

    Das ergebniss sollte so aussehen das bei einem klick auf den UP Pfeil einen Tabellennamen in die $variable1 geschrieben wird und funktion 1 aufgerufen wird. Beim KLick auf den DOWN Pfeil sollte das gleiche passieren, nur in $variable2 und die funktion 2 sollte aufgerufen werden.
    Im moment hab ich es so gemacht, das jedes Bild auf ?$PHP_SELF und die funktion verlinkt, das ist wohl nicht so das wahre, oder? Gibt es die möglichkeit das anders zu machen?

    Hir noch ein codeauszug:

    Code vom Bild:
    <a href='$PHP_SELF?funktion=listesortbycpuup'><img src='oben.gif' width='12' height='12' border='0'>

    und hier der code der funktionen:

    function listesortbyuserup($filter = "" )
    { global $PHP_SELF, $db, $tabelle;
    $result=mysql($db, "SELECT MEMBER_NAME, CPUTYPE, ORGTAKT, MOMTAKT, FSBOC, ORGTEMP, OCTEMP, MULTIOC, ORGVCORE, MOMVCORE, COOLTYPE, STEPPING, MEMBER_EMAIL, ANZEIGEN from $tabelle WHERE ANZEIGEN=1 ORDER BY MEMBER_NAME DESC");
    while(list($MEMBER_NAME, $CPUTYPE, $ORGTAKT, $MOMTAKT, $FSBOC, $ORGTEMP, $OCTEMP, $MULTIOC, $ORGVCORE, $MOMVCORE, $COOLTYPE, $STEPPING, $MEMBER_EMAIL, $ANZEIGEN)
    = mysql_fetch_row($result)) {
    echo " weiter mit html


    Und dann noch was. Ist es möglich den kompletten html code in eine variable zu packen und in echo " " wieder auszugeben? hab das probiert, aber da wird dann gar nix angezeigt

    Für eure Hilfe wäre ich euch sehr dankbar!

    Grüsse Manfred

  • #2
    du kannst nach mehreren kriterien sortieren.

    .... ORDER BY spalte1, spalte2, spalte3 DESC, spalte4;

    erst wird nach spalte 1 sortiert. innerhalb derer nach spalte 2 und innerhalb derer nach spalte 3 ABER ABWÄRST und zum schluss nach spalte 4.

    du kannst du

    > Dazu benutz ich ja Select * From $table ORDER BY TABELLENNAME

    hier meinstest du bestimmt spaltenname....

    für den link machst du im code einen link rein, der sich selber wieder aufruft mit zusätzlichem parameter sort=spaltenname oder so.

    das sähe dann z.b. so aus.

    PHP-Code:
    <a href="<?php echo $PHP_SELF?>?sort=spalte3&way=desc">spalte 3 abwärts sortieren</a>
    die parameter sort und way musst du im script nur verwenden.

    $sort
    $way
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Das geht bei mir net?!?

      Könntest Du mir das fertige mal hinposten, heut ist doch mein erster Tag in Sachen PHP

      Bei mir kommt nur ein weisser bildschirm. Und muss bei Deinem Link nincht die Funktion mit aufgerufen werden? Herrje, tausend fragen

      Danke!

      Kommentar


      • #4
        dann lies erst mal ein buch oder schreibe bei den scriptgesuchen rein.

        ich gebe dir gerne hilfe, aber ich werde dir nichts fertig machen.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Hi Abraxax.

          Habe das nun so gemacht:
          PHP-Code:
                        <td align='center' valign='top' bgcolor='#E9E9E9' class='textva'>
                            <
          a href='$file?sort=CPUTYPE&way=desc'><img src='oben.gif' width='12' height='12' border='0'></a>
                            <
          a href='$file?sort=CPUTYPE&way='><img src='unten.gif' width='12' height='12' border='0'></a>
                      </
          td
          da Deine variante bei mir leider nicht funktionierte. der hat mir anstatt den dateinamen immer noch das komplette Verzeichnis vorangestellt

          Das geht soweit wunderbar, nur hab ich noch ein problem.

          beim laden mit list.php bekomm ich nen fehler, weil ja noch kein Wert in der Variable anthalten ist. ich muss die Seite also korrekterweise mit list.php?sort=SPALTE&way= aufrufen.
          die Variable $sort vorher schon definieren bringts irgendwie auch nicht, da kommt das sortieren imer beim letzten Datensatz ducheinander
          Kann man das umgehen?

          Grüsse Manfred

          Kommentar


          • #6
            Original geschrieben von BlackPixel
            Hi Abraxax.

            1.
            Habe das nun so gemacht:

            2.
            die Variable $sort vorher schon definieren bringts irgendwie auch nicht, da kommt das sortieren imer beim letzten Datensatz ducheinander
            Kann man das umgehen?

            1.
            sieht ja schon sehr schön aus.
            die frage ist nur, was machst du mit $file das ist doch reiner html, oder gibst du das mittels echo aus?
            wenn ja, kann natürlich mein echo $PHP_SELF nicht funktionieren.
            tausche dann bei dir das $file einfach gegen $PHP_SELF aus.
            dann sollte da auch gehen.

            2.
            wenn $sort einen undefinierten wert hat, solltest du einen standardwert setzen.

            PHP-Code:
            $way = ($way == "DESC") ? $way "ASC";

            $sort ereg("^(MEMBER_NAME|CPUTYPE|ORGTAKT|MOMTAKT|FSBOC)$",$sort) ? "ORDER BY ".$sort." ".$way "ORDER BY FSBOC".$way
            das ("^(MEMBER_NAME|CPUTYPE|ORGTAKT|MOMTAKT|FSBOC)$ sagt aus, dass dies innerhalb von $sort sein muss. die pipes | heissen oder.
            ist in $sort MEMBER_NAME oder CPUTYPE oder usw.... dann ist alles ok und danach wird sortiert. hier musst du dann deine zulässigen felder definieren.

            das gleiche habe ich auch schon mal für $way gemacht. da ist es jetzt fertig. damit keiner was anderes ausser DESC oder ASC übergeben kann... bei undefiniertem wird einfach ASC genommen.

            am ende der zeile musst du deinen defaultwert noch reinschreiben. ich habe hier jetzt einfach nur mal FSBOC genommen.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\wampp2c\htdocs\ocdb\list.php on line 89


              Das ist das einzigste was ich bekomme. Ich kanns drehen und schieben wie ich will... irgendwie check ichs nich. Am anfang sah alles noch so einfach aus

              Ich geh jetzt erst mal eine rauchen

              Grüsse Manfred

              Kommentar


              • #8
                wenn man jetzt wüsste, was in zeile 89 steht ....
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  mh... aus Erfahrung würde ich jetzt sagen, dass evtl. was an deinem SQL-Statement nicht stimmt...

                  Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\wampp2c\htdocs\ocdb\list.php on line 89

                  schau dir mal das Statement an, das vor Zeile 89 kommt: richtige Tabelle?? Spaltennamen richtig geschrieben ??

                  gruss

                  Kommentar


                  • #10
                    PHP-Code:

                    { global $PHP_SELF$db$tabelle;
                      
                    $result=mysql($db"SELECT MEMBER_NAME, CPUTYPE, ORGTAKT, MOMTAKT, FSBOC, ORGTEMP, OCTEMP, MULTIOC, ORGVCORE, MOMVCORE, COOLTYPE, STEPPING, MEMBER_EMAIL, ANZEIGEN from $tabelle WHERE ANZEIGEN=1 ORDER BY $sort $way");
                     while(list(
                    $MEMBER_NAME$CPUTYPE$ORGTAKT$MOMTAKT$FSBOC$ORGTEMP$OCTEMP$MULTIOC$ORGVCORE$MOMVCORE$COOLTYPE$STEPPING$MEMBER_EMAIL$ANZEIGEN
                    mysql_fetch_row($result)) {
                    echo 
                    "<table width='610' class='tableborder'align='center'> 
                    Zeile 89 ist =mysql_fech_row...

                    Es funktioniert alles, aber sobal ich die variable $sort mit dem Code von Abraxax im file Einfüge bekomme ich diese Fehlermeldung.
                    Lasse ich das weg und rufe die Seite mit list.php?sort=MEMBER_NAME

                    auf funktioniert alles bestens...

                    Grüsse Manfred

                    Kommentar


                    • #11
                      schreibe am ende der zeile mal bitte nur

                      PHP-Code:
                       ... WHERE ANZEIGEN=1 $sort "); 
                      dann klappt es auch. das ORDER BY ist bereits im string $sort enthalten. auch DESC oder ASC ist enthalten.
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        Nein, bekomme immer noch die Fehlermeldung. wenn ich $way weglasse bekomm ich es nicht mehr sortiert. Son Krampf.

                        Evt. ne andere Überlegung. Ist es möglich beim 1. Aufruf des Scripts automatisch eine funktion mit aufzurufen, die aber nur dieses eine mal oder immer nur mit /list.php aufgerufen wird?

                        Dann könnte ich eine Art Startbildschrim machen, und wenn man die Datensätze angezeigt bekommen möchte kann man ja list.php?funktion=1&sort=SPALTE&way=desc aufrufen.?

                        Grüsse Manfred

                        Kommentar


                        • #13
                          way musst du weglassen. das wird ja bereits in der variable $sort integriert.
                          was ich aber immer noch nicht von dir habe ist das echo $query;
                          ich brauche das, damit ich sehen kann, wo der fehler ist.
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            nachtrag.
                            die art eines startbildschirmes funktioniert mit meinem scriptteil bereits. wenn nichts oder was falsches definiert ist, wird eine standardwert verwendet.
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              Original geschrieben von Abraxax
                              way musst du weglassen. das wird ja bereits in der variable $sort integriert.
                              was ich aber immer noch nicht von dir habe ist das echo $query;
                              ich brauche das, damit ich sehen kann, wo der fehler ist.
                              Du bekommst mal den ganzen code von mir, ist ja nicht allzuviel.

                              Wie gesagt, sobal die 2 Zeilen drinn sind bekomme ich den oben genannten Fehler, da hilt auch ein Link list.php?sort=MEMBER_NAME nichts mehr


                              PHP-Code:
                              <?php

                              require("conf/config.inc.php");

                              $file 'list.php';

                              $tabelle 'ib_member_profiles';

                              ?>
                              <html>
                              <head>
                              <title>PC-Reaktor - OC-Base</title>
                              <link href='css.css' rel='stylesheet' type='text/css'>
                              </head>

                              <body>
                              <?php
                              mysql_connect
                              ($host$dbuser$dbpasswd
                              or die(
                              'Kann mich nicht mit der Datenbank verbinden!') ;

                              $way = ($way == "DESC") ? $way "ASC";

                              $sort ereg("^(MEMBER_NAME|CPUTYPE|ORGTAKT|MOMTAKT|FSBOC|ORGTEMP|OCTEMP|MULTIOC|ORGVCORE|MOMVCORE|COOLTYPE|STEPPING|MEMBER_EMAIL|ANZEIGEN)$",$sort) ? "ORDER BY ".$sort." ".$way "ORDER BY MEMBER_NAME".$way;



                              $result mysql_listtables($db);

                              echo 
                              "
                              <table width='600' border='0' align='center' cellpadding='1' cellspacing='1' bgcolor='#000066'>
                                <tr>
                                  <td><table width='600' height='35' border='0'' cellpadding='1' cellspacing='1'0>
                                      <tr bgcolor='#999999'> 
                                            <td width='60' height='15' align='center' valign='top' bgcolor='#E9E9E9' class='name'><span class='textva'>User</span></td>
                                            <td width='60' align='center' valign='top' bgcolor='#E9E9E9' class='textva'>CPU Typ</td>
                                            <td width='60' align='center' valign='top' bgcolor='#E9E9E9' class='textva'>Def Takt </td>
                                            <td width='60' align='center' valign='top' bgcolor='#E9E9E9' class='textva'>Oc Takt</td>
                                            <td width='60' align='center' valign='top' bgcolor='#E9E9E9' class='textva'>Def Temp </td>
                                            <td width='60' align='center' valign='top' bgcolor='#E9E9E9' class='textva'>OC Temp </td>
                                            <td width='60' align='center' valign='top' bgcolor='#E9E9E9' class='textva'>VCore</td>
                                           <td width='100' align='center' valign='top' bgcolor='#E9E9E9' class='textva'>Art der K&uuml;hlung</td>
                                      </tr>
                                      
                                      <tr bgcolor='#999999'> 
                                           <td height='17' align='center' valign='top' bgcolor='#E9E9E9' class='name'> 
                                                <a href='
                              $file?sort=MEMBER_NAME&way=desc'><img src='oben.gif' width='12' height='12' border='0'></a>
                                                 <a href='
                              $file?sort=MEMBER_NAME&way='><img src='unten.gif' width='12' height='12' vspace='0' border='0'></a>
                                             </td>
                                        
                                            <td align='center' valign='top' bgcolor='#E9E9E9' class='textva'>
                                                <a href='
                              $file?sort=CPUTYPE&way=desc'><img src='oben.gif' width='12' height='12' border='0'></a>
                                                <a href='
                              $file?sort=CPUTYPE&way='><img src='unten.gif' width='12' height='12' border='0'></a>
                                          </td>
                                        
                                            <td align='center' valign='top' bgcolor='#E9E9E9' class='textva'>
                                              <a href='
                              $file?sort=ORGTAKT&way='><img src='oben.gif' width='12' height='12' border='0'></a>
                                              <a href='
                              $file?sort=ORGTAKT&way=desc'><img src='unten.gif' width='12' height='12' border='0'></a>
                                          </td>
                                            
                                          <td align='center' valign='top' bgcolor='#E9E9E9' class='name'> 
                                                <a href='
                              $file?sort=MOMTAKT&way='><img src='oben.gif' width='12' height='12' border='0'></a>
                                              <a href='
                              $file?sort=MOMTAKT&way=desc'><img src='unten.gif' width='12' height='12' vspace='0' border='0'></a>
                                          </td>
                                            
                                          <td align='center' valign='top' bgcolor='#E9E9E9' class='name'> 
                                                <a href='
                              $file?sort=ORGTEMP&way='><img src='oben.gif' width='12' height='12' border='0'></a>
                                              <a href='
                              $file?sort=ORGTEMP&way=desc'><img src='unten.gif' width='12' height='12' vspace='0' border='0'></a>
                                          </td>
                                        
                                            <td align='center' valign='top' bgcolor='#E9E9E9' class='name'> 
                                                <a href='
                              $file?sort=OCTEMP&way='><img src='oben.gif' width='12' height='12' border='0'></a>
                                              <a href='
                              $file?sort=OCTEMP&way=desc'><img src='unten.gif' width='12' height='12' vspace='0' border='0'></a>
                                          </td>
                                        
                                            <td align='center' valign='top' bgcolor='#E9E9E9' class='name'> 
                                                <a href='
                              $file?sort=MOMVCORE&way='><img src='oben.gif' width='12' height='12' border='0'></a>
                                              <a href='
                              $file?sort=MOMVCORE&way=desc'><img src='unten.gif' width='12' height='12' vspace='0' border='0'></a>
                                          </td>
                                        
                                            <td width='100' align='center' valign='top' bgcolor='#E9E9E9' class='name'> 
                                                <a href='
                              $file?sort=COOLTYPE&way='><img src='oben.gif' width='12' height='12' border='0'></a>
                                              <a href='
                              $file?sort=COOLTYPE&way=desc'><img src='unten.gif' width='12' height='12' vspace='0' border='0'></a>
                                          </td>
                                      </tr>
                                    </table></td>
                                </tr></table><table width='610' border='0' align='center' cellpadding='0' cellspacing='0'>
                                <tr>
                                  <td>&nbsp;</td>
                                </tr>
                              </table>
                              "
                              ;


                              { global 
                              $PHP_SELF$db$tabelle;
                                
                              $result=mysql($db"SELECT MEMBER_NAME, CPUTYPE, ORGTAKT, MOMTAKT, FSBOC, ORGTEMP, OCTEMP, MULTIOC, ORGVCORE, MOMVCORE, COOLTYPE, STEPPING, MEMBER_EMAIL, ANZEIGEN from $tabelle WHERE ANZEIGEN=1 ORDER BY $sort");
                               while(list(
                              $MEMBER_NAME$CPUTYPE$ORGTAKT$MOMTAKT$FSBOC$ORGTEMP$OCTEMP$MULTIOC$ORGVCORE$MOMVCORE$COOLTYPE$STEPPING$MEMBER_EMAIL$ANZEIGEN
                              mysql_fetch_row($result)) {
                              echo 
                              "<table width='610' class='tableborder'align='center'>
                              <tr bgcolor='#999999'> 
                              <td colspan='2' class='name'><a href='mailto:
                              $MEMBER_EMAIL' class='name'>$MEMBER_NAME</a></td>
                              <td colspan='4' class='cpu'>
                              $CPUTYPE $ORGTAKT MhZ @ $MOMTAKT MhZ</td>
                              </tr>
                              <tr bgcolor='#C6C8D7'> 
                                  <td width='74' class='text'>Org. Takt</td>
                                  <td width='124' class='textva'>
                              $ORGTAKT MhZ</td>
                                  <td width='57' class='text'>OC Takt</td>
                                  <td width='126' class='textva'>
                              $MOMTAKT MhZ</td>
                                  <td width='40'>&nbsp;</td>
                                  <td width='175'>&nbsp;</td>
                                </tr>
                                <tr bgcolor='#E9E9E9'> 
                                  <td class='text'>Org. Temp</td>
                                  <td class='textva'>
                              $ORGTEMP C°</td>
                                  <td class='text'>OC Temp</td>
                                  <td class='textva'>
                              $OCTEMP C°</td>
                                  <td class='text'>FSB</td>
                                  <td class='textva'>
                              $FSBOC MhZ</td>
                                </tr>
                                <tr bgcolor='#C6C8D7'> 
                                  <td class='text'>Org. VCore</td>
                                  <td class='textva'>
                              $ORGVCORE V</td>
                                  <td class='text'>OC VCore</td>
                                  <td class='textva'>
                              $MOMVCORE V</td>
                                  <td class='text'>Multi</td>
                                  <td class='textva'>
                              $MULTIOC X</td>
                                </tr>
                                <tr bgcolor='#E9E9E9'> 
                                  <td colspan='2' class='textva'>
                              $COOLTYPE</td>
                                  <td class='text'>Stepping</td>
                                  <td class='textva'>
                              $STEPPING</td>
                                  <td></td>
                                  <td></td>
                                </tr>
                              </table><br>"
                              ; }} 

                                
                              ?>




                              </body>
                              </html>
                              Und hier nochmal die Fehlermeldung:

                              Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\wampp2c\htdocs\ocdb\list.php on line 97
                              Zuletzt geändert von BlackPixel; 19.12.2002, 13:53.

                              Kommentar

                              Lädt...
                              X