Umgeblätterte Seiten werden nicht angezeigt

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

  • Umgeblätterte Seiten werden nicht angezeigt

    Hallo Leute!
    Also ich habe eine Datenbank mit einem Suchenformular wo name vorname kategorie
    und/oder die Firma abgefragt werden kann!
    Diese Abfrage funktioniert auch tadellos so wie ich das will
    da manchmal aber auch sehr viele Datensätze auftreten möchte ich jetzt
    nur immer 20 anzeigen und dann soll man sich die nächsten 20 anzeigen lassenkönnen.
    Die erste Seite zeigt es mir an aber wenn ich dann versuche auf

    die 2 Seite zu klicken bekomme ich warunungen und keine Datensatz
    ausgabe! Ich habe mir dann mal die abfrage anzeigen lassen und siehe da
    es fehlt ein stück! nun da ich anfänger bin weiß ich leider nicht wo es noch
    genau dran liegen könnte. könnt ihr vielleicht mal schauen ob ihr den Fehler
    findet???

    Die Abfrage:
    PHP-Code:
    <?php
    $sql 
    "Select * from TABELLE where ";
    /*if( empty ($name) && empty($nname) && empty ($kategorie) && empty ($ort))
        {
            echo ("<big>Fehler! keine Eingabe</big>");
            ?>
            <form action="suchen.html" method="post">
            <input type="Submit" name=""  style='WIDTH:140' WIDTH='140' value="zurück">
            </form>
            <?
            exit();
        }*/
    if ($name)                                                                           //Vornamenabfrage
     
    {
        
    $sql .=" vorname like ";
        
    $sql .="'%";
        
    $sql .=$name;
        
    $sql .="%'";
     }
        
    if (
    $name && $nname)                                                                //Vornamen und Nachnamenabfrage
     
    {
        
    $sql .=" and ";
     }

    if (
    $nname)                                                                         //Nachnamenabfrage
     
    {
        
    $sql .=" nachname like ";
        
    $sql .="'%";
        
    $sql .=$nname;
        
    $sql .="%'";
     }

    if (
    $name && $kategorie)                                                            //Vornamen und Kategorieabfrage
     
    {
        
    $sql .=" and ";
     }
                                                                                         
    //HIER sonst gibt es ein doppel "and" 
    else

    if (
    $nname && $kategorie)                                                           //Nachnamen und Kategorieabfrage
     
    {
        
    $sql .=" and ";
     }
     
    else

    if (
    $nname && $ort)                                                                 //Nachnamen und Ortabfrage
     
    {
        
    $sql .=" and ";
     }

    if (
    $kategorie)                                                                     //Kategorieabfrage
     
    {
        
    $sql .=" kategorie like ";
        
    $sql .="'%";
        
    $sql .=$kategorie;
        
    $sql .="%'";
     }

    if (
    $name && $ort)                                                                  //Vorname und Ortsabfrage
     
    {
        
    $sql .=" and ";
     }
     
    else

    if (
    $kategorie && $ort)                                                             //Kategorie und Ortabfrage
     
    {
        
    $sql .=" and ";
     }


    if (
    $ort)                                                                           //Ortabfrage
     
    {
        
    $sql .=" stadt_a like ";
        
    $sql .="'%";
        
    $sql .=$ort;
        
    $sql .="%'";
     }
    ?>
    und die anzeigenseite:
    PHP-Code:
    <?
    include("dbconnect.php");
    ?>
    <html>
    <head>
    <title>suchenerg5</title>
    <meta name="author" content="gillz">
    <meta name="generator" content="Ulli Meybohms HTML EDITOR">
    </head>
    <body text="#000000" bgcolor="#8F8F8F" link="#FF0000" alink="#EFEFEF" vlink="#FF0000">
    <?php
    include("dbsuchenabfrage.php");
    print (
    "Starte SQL Abfrage: $sql <BR>");
    echo 
    '<hr>';
    $limit=20;
    if (
    $page==0)
     {   
        
    $page=1;
     }
    $spalte $Rubrik;
    $sql .=" LIMIT ".($page-1)*$limit."," .$limit;
    $result_articles mysql_query ($sql$dblink);


    echo 
    "<table border=0 cellspacing= 1 cellpadding=5 >";
    echo 
    "<tr>";
    echo 
    "<th></th><th></th><th bgcolor=#CFCFCF>Vorname</th><th bgcolor=#CFCFCF>Nachname</th>";
    echo 
    "<th bgcolor=#CFCFCF>Anrede</th><th bgcolor=#CFCFCF>Titel</th>";
    echo 
    "<th bgcolor=#CFCFCF>E-Mail</th><th bgcolor=#CFCFCF>Firma</th>";
    echo 
    "<th bgcolor=#CFCFCF>Telefon<th></tr>";
    echo 
    "<form action='Aenderung.php' method='post'>";

    include (
    "function.php");
    while (
    $row mysql_fetch_array($result_articles))
    {

          echo 
    "<tr>";
          echo 
    "<td><input type='Radio' name='id' value=" $row["ID"] . "></td>";
          echo 
    "<td>"ascii2html$row["ID"]) ."</td>";
          echo 
    "<td>"ascii2html$row["vorname"]) ."</td>";
          echo 
    "<td>"ascii2html$row["nachname"]) ."</td>";
          echo 
    "</tr>";
    }
    echo 
    "</table>";
    echo 
    '<hr>';

    list(
    $sql_num) = split("LIMIT",$sql);
    $result_num mysql_query ($sql_num$dblink);
    $nummer mysql_num_rows($result_num);

    echo 
    "
        <table border=0>
        <tr>
        <td>&nbsp;</td>
        <td><b>Bei der Suche wurden
        <font color=red><b>
    $nummer</b></font> Einträge gefunden</b><p></td>
        </tr>
        </table>
    "


    if (
    $nummer==0)
    {
    echo 
    "<tr><td><b>keine passenden Datensätze gefunden</b></td></tr>";
    }


    if (
    $nummer 0)
     {
      echo 
    ceil($nummer/$limit);
      if (
    ceil($nummer/$limit) == 1) echo " Seite";
       else echo 
    " Seiten";
      echo 
    "<br><br>";
      if (
    $page 1)
      {
      echo 
    "<a href=\"$PHP_SELF?page=".($page-1)."&sql= ".rawurlencode($sql)."\">vorherige</a> &nbsp;";
      }
      if (
    $page $nummer/$limit && $nummer $nummer/$limit)
      {
       echo 
    " <a href=\"$PHP_SELF?page=".($page+1)."&sql=".rawurlencode($sql)."\">nächste</a> &nbsp;";
      }
      echo 
    "<br>";
      for (
    $i=1;$i<$nummer/$limit+and $nummer/$limit 1;++$i)
       {
        if (
    $page == $i) echo "<b>[$i]</b> &nbsp;";
         else echo 
    "<a href=\"$PHP_SELF?page=$i\">$i</a> &nbsp;";
       }
     }
    echo 
    "<table><tr><td>";
    echo 
    "<input type='Submit' style='WIDTH:140' WIDTH='140' value='Daten anzeigen'></form>";
    echo 
    "</td></tr></table>";
    mysql_free_result($result_articles);
    mysql_close($dblink);
    //}
    ?>
    für Eure Hilfe wäre ich sehr dankbar
    mfg
    Gillz
    Zuletzt geändert von ; 21.05.2002, 12:52.

  • #2
    poste doch mal die erste abfrage und die, wo was fehlt, ich nehme an, dass irgendeine variable nicht übergeben wird.
    gruss
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Auf jeden Fall werden die Suchbegriffe nicht weiter durchgeschleift.

      Ich persönlich würde in diesem Falle das Suchformular via GET senden und dann 'ne Funktion schreiben die mir in meiner aktuellen URL Parameter ersetzten kann:

      PHP-Code:
      function paramReplace($var$val) {
          GLOBAL 
      $HTTP_POST_VARS$PHP_SELF;
          
          
      $result="";
          
      $dummy=array();
          
          foreach( 
      $HTTP_POST_VARS AS $vari=>$valu $dummy[$vari]=urlencode($valu);
          
      $dummy[$var]=urlencode($val);
          
          foreach( 
      $dummy AS $vari=>$valu $result.=( $result=="" "" "&" ).$vari."=".$valu;
          return 
      $PHP_SELF."?".$result;

      Die URL's für Vorheriger und nächster würde ich mir dann in der Art aufbauen:
      PHP-Code:
      if ($page 1) {
        echo 
      "<a href=\"".paramReplace("page"$page-1)."\">vorherige</a> &nbsp;";
      }

      if (
      $page ceil($nummer/$limit) ) {
          echo 
      " <a href=\"".paramReplace("page"$page-1)."\">nächste</a> &nbsp;";

      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        wie meinst du das @Kropff

        ich habe die datei zum anzeigen als erstes mit angegeben
        das andere was dann dahin führt ist nur ein html tag

        mfg
        Gillz

        Kommentar


        • #5
          @Gillz
          ganz einfach, du schreibst
          Ich habe mir dann mal die abfrage anzeigen lassen und siehe da
          es fehlt ein stück!
          also ist irgendwas verlorengegangen, wenn du nicht ALLE benötigten variablen mit durchschleifts, gehen die verloren.
          ich tipp mal auf $nummer
          <a href=\"$PHP_SELF?page=".($page-1)."&sql= ".rawurlencode($sql)&nummer=$nummer">
          vielleicht wars das ja?
          gruss
          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Kropff glaubt (soweit ich das verstehe) das beim neuerlichen Aufrufen deiner Seite Variablen nicht übergeben werden. Lass dir mal $Sql ausgeben bevor du die Abfrage machts und kontrollier ob der stimmt.

            Kommentar


            • #7
              @Kropff
              erst mal danke aber wenn ich die syntax so setze kommt ne fehlermeldung


              @SeTom
              auch danke wenn ich die abfrage noch nicht rausgeschickt habe
              kommt wenn ich jetzt zum beispiel den vornamen abfrage:

              PHP-Code:
              Select from TABELLE where vorname like '%Daniel%' LIMIT 0,20 
              aber nach der abfrage wie gesagt kommt nur noch

              PHP-Code:
              Select from TABELLE where LIMIT 20,20 
              und was auch komisch ist wenn ich über den nächste-Link gehe
              (bin auf seite eins) kommt ...LIMIT 0,20

              aber es müsste doch eigentlich 20,20 stehen!?!?!
              und wenn ich dann auf der nächsten seite bin wird aber richtig
              LIMIT 20, 20 angezeigt!?!?!?!

              Was auch noch ist ich habe mal getestet was passiert wenn die
              abfragen weglasse und zur probe einfach nur mal z.b.
              PHP-Code:
              Select from TABELLE where $vorname like 'Daniel' LIMIT ".($page-1)*$limit."," .$limit
              da funktioniert alles!

              und ich bekomme was ich auch mache immer wieder die Warnung
              mit dem teil:
              PHP-Code:
              $num mysql_num_rows($result_num); 
              und der schleife:
              PHP-Code:
              while ($row mysql_fetch_array($result_articles)) 



              mfg
              Gillz
              Zuletzt geändert von ; 22.05.2002, 13:05.

              Kommentar


              • #8
                anbei ein script, das ich mal vor langer zeit geschrieben habe (bitte nicht über den code lachen, der ist grausam, funzt aber so gut, dass ich den ständig für sowas nutze), das prinzip ist anders, ich schreibe den inhalt der abfrage KOMPLETT in ein array und das gebe ich dann in zehnerschritten aus, musst du für deine zwecke noch modifizieren und austesten.
                gruss
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  ich rindvieh, jaja erst klicken, dann denken, hier ist das script
                  peter
                  Angehängte Dateien
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar


                  • #10

                    Danke erst mal @Kropff werd das jetzt mal versuchen für mich
                    hinzubiegen und melde mich dann nochmal falls ich mich dümmer
                    als dumm anstelle
                    *mfg*
                    Gillz

                    Kommentar


                    • #11
                      so also ne Fehlermeldung bekomme ich nicht dafür habe ich jetzt
                      ne blanke Seite
                      darf ich dir das sricpt nochmal zeigen??
                      Gillz
                      Zuletzt geändert von ; 23.05.2002, 09:56.

                      Kommentar


                      • #12
                        zeile 24: deine komplette abfrage
                        zeile 35,36 auskommentieren
                        zeile 70,71 deine variablen aus dem array (z.B. $name = $zehner[$i][0]; $vorname = $zehner[$i][1];$strasse = $zehner[$i][2]; usw)
                        nach zeile 71 gibts du diese variablen mit echo aus.
                        ab zeile 83 überall deine variable(n) mit dranhängen wo $PHP_SELF steht
                        ansonsten immer mal zwischendurch mit echo die diversen variablen ausgeben und schauen, ob die einen inhalt haben.
                        viel spass beim ausprobieren
                        peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          meinst du mit den variablen hinter PHP_SELF auch die variablen
                          aus dem Array oder meinst du mehr die variable in die die ich
                          die abfrage reingespeichert habe....

                          Gillz

                          Kommentar


                          • #14
                            nein nicht die variablen aus dem array sondern die aus dem suchformular ($vorname, $name etc oder wie die bei dir heißen), ich glaube du hast ja die abfrage in der variable $sql reingepackt, die mußt du mit anhängen (...&sql=$sql)
                            werde mich jetzt verabschieden, gehe nach hause und leg mich ins bett, die haben mir gestern einen zahn samt wurzel gezogen (besser rausgerissen).
                            probier mal weiter rum, morgen bin ich wieder da.
                            gruss
                            peter
                            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                            Meine Seite

                            Kommentar


                            • #15
                              gut werd ich machen danke und lass dir besser gehen!!!

                              mgf
                              Gillz

                              Kommentar

                              Lädt...
                              X