$_POST und $_GET + Seitennavigation

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

  • $_POST und $_GET + Seitennavigation

    Ich übergebe mittels einem Such-Formular eine Id, die in $_POST[id]
    gespeichert ist. Nun enthält die gesuchte ID die Zahl 1 und
    gibt mehere Ergebnisse aus der SQL Datenbank an.
    Meine Seitennavigation funktioniert aber über $_GET[page].
    Sobald ich nun also Seite 2 anklicke erlischt meine $_POST[id]
    und es werden alle Datensätze mit dem Feld ID ausgegeben.

    Hat jemand einen Denkanstoß, wie ich hier vorgehen kann?

  • #2
    id als Session ??
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Das war auch meine erste Idee:

      $_SESSION[id] = $_POST[id];

      Allerdings erlischt auch meine $_SESSION[id], sobald
      ich auf page 2 gelange über $_GET.

      Habe ich vielleicht etwas vergessen?

      ---ADD

      PHP-Code:

      session_start
      ();

      (...)

                 include(
      "mysql.inc.php");

                 
      $sql_count mysql_query("SELECT id FROM $db_test WHERE id
       LIKE '%"
      .$_POST[id]."%'");

                 
      $total_count mysql_num_rows($sql_count);

                 
      //Anzahl der Ergebnisse pro Seite
                 
      $count 4;

                 
      //Seitenanzahl berechnen
                 
      $pagecount=ceil($total_count/$count);

                 
      //Ungültige Seitenanzahlen korrigieren
                 
      if ($page<1$page=1;
                 if (
      $page>$pagecount$page=$pagecount;

                 
      //Ergebnisse lesen
                 
      $begin=($page-1)*$count;

                 
      $sql mysql_query("SELECT ... FROM $db_test2 WHERE id
       LIKE '%"
      .$_POST[id]."%' ORDER BY id DESC LIMIT $begin,$count");

                 if(
      $total_count 0)
                 {
                    (...)
                 }

      //Seitenauswahl-Leiste
      for ($i=1$i<=$pagecount$i++)
      {
        if (
      $i==$page)
        {
          echo 
      "<font class=\"pagenumstatic\"><b>".$i."</b></font>&nbsp;&nbsp;";
        }
        elseif(
      $i!=$page)
        {
          if(
      $i == $page+5)
          {
            echo 
      "<span class=\"pagenum\"><a href=\"?search=$_GET[search]
      &page=
      $i\" title=\"vorw&auml;ts\">&raquo;</a></span>";
          }
          if(
      $i == $page-5)
          {
            echo 
      "<span class=\"pagenum\"><a href=\"?search=$_GET[search]
      &page=
      $i\" title=\"zur&uuml;ck\">&laquo;</a></span>";
          }

          if(
      $i <= $page+&& $i >= $page-4)
          {
            echo 
      "<span class=\"pagenum\"><a href=\"?search=$_GET[search]
      &page=
      $i\" title=\"zur Seite $i\">".$i."</a></span> ";
          }
        }

      Zuletzt geändert von kerbstone; 30.12.2005, 18:28.

      Kommentar


      • #4
        Du kannst deine Such-id auch gerne per get an die zweite seite übergeben. solang es nur ne ID ist, sollte das Absolut kein Problem darstellen.

        Musst sie halt nur entsprechend im Code abfragen.

        Allerdings erlischt auch meine $_SESSION[id], sobald
        ich auf page 2 gelange über $_GET.
        Wird die SID vernünftig übergeben, oder verlierst du deine Session? Dann sollte dich das verhalten nicht wundern. Aber warum der Umweg über sessions bei einem einzelnen wert? Wenn du nicht ohnehin schon sessions verwendest, würde ich getrost drauf verzichten.

        Kommentar


        • #5
          Das Problem ist, dass ich schon einen $_GET Wert in meiner URL habe.

          Kommentar


          • #6
            Oh, ja klar. Wie dumm von mir. Dann kannst du natürlich keinen zweiten anhängen. Hmm. Ich lass mir was einfallen. Vielleicht schreib ich nen neues Internetprotololl oder so. Meld mich später noch mal.

            Kommentar


            • #7
              Sorry, so war das nicht gemeint.

              Aber ist es nicht so, dass ein Formular mit $_GET
              die ursprünglichen Anhängsel löscht und nur das
              anhängt, was im Formular gesendet werden soll?

              Kommentar


              • #8
                wenn ich dich richtig verstehe: Nein!

                Und selbst wenn. Wer hat was davon gesagt, dass du das Form per GET senden sollst? Keiner! Dein Problem besteht doch darin die ID von der ersten Ergebnisseite zur zweiten zu bekommen!

                Kommentar


                • #9
                  Ja, aber das Problem kann ja mittels der Session aus der
                  Welt geschafft werden. Jetzt ist aber das Problem,
                  dass die MySQL Abfrage doch nach dem $_POST Wert sucht.
                  Der geht doch trotzdem auf der 2. Seite verloren.
                  Wenn ich die SQL ABfrage mit $_GET mache, beachtet
                  die Abfrage nicht mein Formular-POST-Wert. *arghh, schwitz*

                  Kommentar


                  • #10
                    Und du willst mir allen ernstes erzählen, dass du nicht in der Lage beide Werte auszuwerten, bzw. selbst herauszufinden, welcher Wert existiert und diesen zu verwenden??

                    Bitte schallte Register_Globals an und verwende einfach $id.

                    Kommentar


                    • #11
                      Also dann mach aus diesem POST-Wert doch einfach einen GET-Wert
                      Wenn das Form abgeschickt wurde, dann machste die Abfrage mit dem POST und knallst dem User einen Link rein für die nächste Seite.
                      PHP-Code:
                      echo '<a href="http://www.meine_domain.de/file.php?id='.$POST['id'].'">klickme</a>'
                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        Das geht auch nicht, weil der POST Wert nach dem ersten klick weg ist.

                        Für alle die interessiert, wie ich es gelöst habe, wenn auch
                        nicht professionell

                        PHP-Code:
                        if(isset($_POST[id]))
                                       {
                                         
                        $sql_count mysql_query("SELECT id FROM $db_test WHERE id
                         LIKE '%"
                        .$_POST[id]."%'");
                                       }
                                       elseif(isset(
                        $_GET[id]))
                                       {
                                         
                        $sql_count mysql_query("SELECT id FROM $db_test WHERE id
                         LIKE '%"
                        .$_GET[id]."%'");
                                       }

                        (...)

                        //Seitenauswahl-Leiste
                        for ($i=1$i<=$pagecount$i++)
                        {
                          if (
                        $i==$page)
                          {
                            echo 
                        "<font class=\"pagenumstatic\"><b>".$i."</b></font>&nbsp;&nbsp;";
                          }
                          elseif(
                        $i!=$page)
                          {
                            if(
                        $i == $page+5)
                            {
                              if(isset(
                        $_POST[id]))
                              {
                                echo 
                        "<span class=\"pagenum\"><a href=\"?search=$_GET[search]
                        &tpl_nr=
                        $_POST[id]&page=$i\" title=\"vorw&auml;ts\">&raquo;</a></span>";
                              }
                              elseif(isset(
                        $_GET[id]))
                              {
                                echo 
                        "<span class=\"pagenum\"><a href=\"?search=$_GET[search]
                        &tpl_nr=
                        $_GET[id]&page=$i\" title=\"vorw&auml;ts\">&raquo;</a></span>";
                              }
                            }
                            if(
                        $i == $page-5)
                            {
                              if(isset(
                        $_POST[id]))
                              {
                                echo 
                        "<span class=\"pagenum\"><a href=\"?search=$_GET[search]
                        &tpl_nr=
                        $_POST[id]&page=$i\" title=\"zur&uuml;ck\">&laquo;</a></span>";
                              }
                              elseif(isset(
                        $_GET[id]))
                              {
                                echo 
                        "<span class=\"pagenum\"><a href=\"?search=$_GET[search]
                        &tpl_nr=
                        $_GET[id]&page=$i\" title=\"zur&uuml;ck\">&laquo;</a></span>";
                              }
                            }

                            if(
                        $i <= $page+&& $i >= $page-4)
                            {
                              if(isset(
                        $_POST[id]))
                              {
                                echo 
                        "<span class=\"pagenum\"><a href=\"?search=$_GET[search]
                        &tpl_nr=
                        $_POST[id]&page=$i\" title=\"zur Seite $i\">".$i."</a></span> ";
                              }
                              elseif(isset(
                        $_GET[id]))
                              {
                                echo 
                        "<span class=\"pagenum\"><a href=\"?search=$_GET[search]
                        &tpl_nr=
                        $_GET[id]&page=$i\" title=\"zur Seite $i\">".$i."</a></span> ";
                              }
                            }
                          }

                        Kommentar


                        • #13
                          kerbstone, auch du darfst E_ALL versuchen..

                          Kommentar

                          Lädt...
                          X