Suche mit PHP

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

  • Suche mit PHP

    Hi, mittels MySQL und PHP möchte ich eine Suche auf meiner Seite zur Verfügung stellen. Nur hab ich noch ein paar Probleme. Z.B., das ich nicht weiß, wie ich die Suchergebnisse, wenns mehr als 25 sind, auf mehrere Seiten aufteile. Ich hab das Script, das ich bis jetz gemacht hab mal upgeloaded. Könnt die sich jemand von euch erfahreneren PHP Programmierer mal durchschauen und mir einen Tippgeben, wie das zu realisieren ist? Was ich noch brauche steht in den Kommentaren der .php Datei.
    http://www.megaupload.com/?d=T8WSQ0AK
    Danke im Voraus
    Dulla_Po

  • #2
    Such einfach mal nach "Blättern". Gibt auch ne Klasse dazu hier im Forum (hier)

    Ich bin mir sicher dass du was nützliches findest. Wenn nicht, kannst du ja hier wieder nachfragen
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Also ich hab das jetz so verstanden, das ich einfach ein Limit einbauen muss, aber wied das mit den weiterblättern geht, hab ich noch nich verstanden. Die Quelltexte sind immer sehr komplex. Ich versteh nicht in deinem Beispiellink, wie ich das genau einbetten soll?
      Naja ich glaub ich mach das erstmal ohne blättern.
      Zuletzt geändert von Dulla_Po; 22.12.2006, 19:34.

      Kommentar


      • #4
        Erstmal musst du wissen, wie viele Ergebnisse du überhaupt hast. (COUNT)
        Dann nimmst du die Zahl, die du raus bekommst und dividierst diese durch die Anzahl der Ergebnisse, die du pro Seite anzeigen willst.
        So bekommst du heraus, wie viele Seiten du hast.
        Nun kannst du mit ner For-Schleife die limit-Startwerte berechnen.

        Bsp:
        PHP-Code:
        for($i=1;$i<=$maxSeiten;$i++){
           echo 
        '<a href="bla.php?limit='.($i-1)*$proSeite.'">$i</a>';
        }
        $sql="Select bla From table limit ".$_GET['limit'].", $proSeite;"
        wobei, das direkte $_GET im sql Befehl gefährlich ist...
        Zuletzt geändert von Damian1984; 22.12.2006, 20:39.
        Für Rechtschreibfehler übernehme ich keine Haftung!

        Kommentar


        • #5
          Original geschrieben von Damian1984
          wobei, das direkte $_GET im sql Befehl gefährlich ist...
          Aber dafür haben wir ja intval
          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
          var_dump(), print_r(), debug_backtrace und echo.
          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

          Kommentar


          • #6
            Ja, gut bis dahin hatt ichs ja verstanden. Mit Limit im SQL Befehl holt der sich nur so viele Datensätze raus und wie viele Seiten ich brauch, weiß ich auch. nur wie ich dann auf der nächsten Seite den Rest anzeigen kann, also die Ergebnisse fortführen kann weiß ich nicht, das der nach dem Datensatz, wo er aufgehört hat wieder anfängt und die weiter raussucht.

            Kommentar


            • #7
              Original geschrieben von Dulla_Po
              Ja, gut bis dahin hatt ichs ja verstanden. Mit Limit im SQL Befehl holt der sich nur so viele Datensätze raus und wie viele Seiten ich brauch, weiß ich auch. nur wie ich dann auf der nächsten Seite den Rest anzeigen kann, also die Ergebnisse fortführen kann weiß ich nicht, das der nach dem Datensatz, wo er aufgehört hat wieder anfängt und die weiter raussucht.
              Das macht doch der Code da oben Oo
              Für Rechtschreibfehler übernehme ich keine Haftung!

              Kommentar


              • #8
                Also, $maxseiten = Anzahl der ergebnisse / Anzahl der ergebnisse, die ich pro seite haben will

                und $proseite = Anzahl der ergebnisse, die ich pro seite haben will
                ?

                Dann wird doch bei der nächsten Seite, das Limit mal 2 z.B. erhöht und dann zeigt der bei 25 nun 50 Seiten an oder?
                Und wenn ich nur eine Seite habe und -1 gerechnet wird kommt ja null raus und mir wird gar keine angezeigt

                Kommentar


                • #9
                  Original geschrieben von Dulla_Po
                  Also, $maxseiten = Anzahl der ergebnisse / Anzahl der ergebnisse, die ich pro seite haben will

                  und $proseite = Anzahl der ergebnisse, die ich pro seite haben will
                  ?

                  Dann wird doch bei der nächsten Seite, das Limit mal 2 z.B. erhöht und dann zeigt der bei 25 nun 50 Seiten an oder?
                  Und wenn ich nur eine Seite habe und -1 gerechnet wird kommt ja null raus und mir wird gar keine angezeigt
                  Beim ersten Mal zeigt er [limit 0, 10] 1-10 an, wenn man davon ausgeht, dass man 10 Datensätze pro Tag haben will.

                  Beim 2. Mal [limit 10, 10] also 11-20....

                  etc.

                  http://dev.mysql.com/doc/refman/5.1/de/index.html
                  Für Rechtschreibfehler übernehme ich keine Haftung!

                  Kommentar


                  • #10
                    Ach soooo, dasd $proseite dahinter hab ich nicht gesehen, tschuldigung ALLES klar

                    Kommentar


                    • #11
                      So, das ist jetz meine "fertige" search. php
                      kann da einer von euch nochmal raufgucken (nur noch ein einziges mal)

                      http://www.file-upload.net/download_...m8q2v.rar.html

                      Danke nochmal

                      Werden bei mysql_num_rows(mit Limit) eg nur die Anzahl der gefundenen Datensätze im Rahmen des Limits angegeben oder alle die auch ohne Limit gefunden wurden?
                      z.B bei Limit 0,10 und insgesamt aber 200 gefundenen ergebnissen zur suche:
                      mysql_num_rows = 11 oder 200?
                      Zuletzt geändert von Dulla_Po; 23.12.2006, 15:41.

                      Kommentar


                      • #12
                        Hast du es mal ausprobiert?
                        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                        var_dump(), print_r(), debug_backtrace und echo.
                        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                        Kommentar


                        • #13
                          Nein, mein Skript is ja noch nich ganz fertig und deshalb wollt ich das jetz wissen, weil ich es sonst anders schreiben muss

                          Kommentar


                          • #14
                            Habs jetz in dem Glauben gemacht und kam das raus:
                            Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/dullapo/search1.php on line 98

                            Wisst ihr, warum das kein gültiges MySQL result resource ist?

                            Ok tschuldigt:

                            PHP-Code:
                            $searchen mysql_query("SELECT *  FROM `Suche` WHERE `keywords` LIKE CONVERT
                            (_utf8 '%" 
                            $_GET["query"] . "%' USING latin1) COLLATE latin1_german2_ci");
                            $search mysql_query("SELECT *  FROM `Suche` WHERE `keywords` LIKE CONVERT
                            (_utf8 '%" 
                            $_GET["query"] . "%' USING latin1) COLLATE latin1_german2_ci LIMIT
                             " 
                            intval($_GET['limit']) . ", $proSeite");
                            $ergebnisse mysql_num_rows($searchen);
                            $ergebnisse1 mysql_num_rows($search); 
                            Ich hab auch die gesamte PHP Datei geuploadet: http://www.file-upload.net/download_...sv61v.rar.html
                            Zuletzt geändert von Dulla_Po; 23.12.2006, 20:37.

                            Kommentar


                            • #15
                              http://www.php-resource.de/forum/sho...threadid=50454

                              Kommentar

                              Lädt...
                              X