Blätterfunktion geht nicht richtig

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

  • #16
    natürlich habe ich den scripttext selber geschrieben, das plus kommt aus
    $tmp = explode(' ', $_POST['suche']);

    foreach ($tmp as $key => $value) {
    $tmp[$key] = '+' . $value;
    }

    $suche = implode(' ', $tmp);
    worin die suche definiert ist, dass die suchabfrage zwei begriffe zu einem verbindet, was über das + geschieht....blablabla usw und so fort.

    aber sorry, wenn MICH ein anfänger in sachen html z.B. etwas fragt, mache ich ihn nicht gleich dafür nieder und deute ihm nicht gleich an, dass er zu doof ist und lieber was anderes lernen soll, was ich auch tun könnte, denn in sachen html kenn ich mich z.B. ganz gut aus. aber auch das habe ich irgendwann einmal gelernt...aber einige sind wohl schon mit php-kenntnissen auf die welt gekommen

    Kommentar


    • #17
      jetzt würde es noch darum gehen, die Datenlogik zu begreifen, wenn zwei Seiten zu verbinden sind. (nämlich die erste Suchresultatseite und die geblätterte Suchresultatseite). Die Hier gegebenen Anregungen waren alle richtig.

      Erinnere Dich an mein Goethe-Zitat, ersatzweise für deinen nicht funktionierenden, nicht geposteten skripttext.

      Kommentar


      • #18
        den scripttext in meinem ersten post, der nicht funktioniert und dieser auch nicht:
        echo " <form method=post action='" .$_SERVER['PHP_SELF'] ."'>\n";
        echo "<input class= formular name=suche type=text maxlenght=255 size=20 value='".$_POST['suche']."'>\n";
        echo "<input class= formular type=submit name=Submit value='Senden'>\n</form>";




        $tmp = explode(' ', $_POST['suche']);

        foreach ($tmp as $key => $value) {
        $tmp[$key] = '+' . $value;
        }

        $suche = implode(' ', $tmp);



        $start = 0;
        $step = 5;
        if (isset($_GET["start"])) {
        $start = $_GET["start"];
        }


        mysql_connect("xyz", "xyz", "xyz");
        mysql_select_db("xyz");
        $sql1 = "SELECT * from Adressverzeichnis WHERE MATCH (Name,Vorname,Titel) AGAINST ('+$suche' IN BOOLEAN MODE)";
        $sql2 = "SELECT * from Adressverzeichnis WHERE MATCH (Name,Vorname,Titel) AGAINST ('+$suche' IN BOOLEAN MODE) LIMIT $start, $step";
        $result1 = mysql_query($sql1);
        $zeilen = mysql_num_rows($result1);
        $result2 = mysql_query($sql2);

        echo "<table width=400 height=100 align=center cellpadding=10 cellspacing=10>" . "<tr>" . "<td>" . "<b>$zeilen Einträge gefunden:</b><br><br>";
        for ($i=0;$zeilen>$i;$i=$i+$step) {
        $anf=$i+1;
        $end=$i+$step;
        if ($end>$zeilen) {
        $end=$zeilen;
        }
        if ($anf==$end) {
        echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i&suche=$suche\">$end</a> ]" ;
        }

        else {

        echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i&suche=$suche\">$anf-$end</a> ]" . " ";
        }
        }
        wohlbemerkt sind an diesem script nur die beiden zeilen verändert, die du mir "zur anregung" gegeben hast und sie gehen nicht.
        Hast du es denn selbst bei dir schonmal ausprobiert und zwar so, wie der scripttext hier steht? Rätselraten ist ja immer ganz toll, doch die Nadel im Heuhaufen zu suchen ist echt einfacher...jemandem, der sein script hier postet und er jammert, dass es nicht funktioniert, wird auch immer sofort geholfen, indem man ihm sagt, er solle mal seine semikolons überprüfen...ich denke mal, wenn du Hilfe benötigst, schreibst Du ja auch hier ins Forum und freust Dich über eine Antwort, mit der Du was anfangen kannst, es haben schon ganz andere Leute auf dem Schlauch gestanden...
        Zuletzt geändert von Sphinx0402; 13.08.2006, 01:10.

        Kommentar


        • #19
          Du hast von Programmieren noch keine Ahnung, aber auch nicht die Initiative, es zu lernen. Zum Lernen muss man sich in das Anliegen logisch eindenken. Statt dessen hier also die Zeilen:
          if (isset($_GET['suche'])) {
          $suche = $_GET['suche'];
          }

          Dann ist noch ein Problem mit den '+'. Das kann ich Dir nicht als Mangel anhängen, da es eine Stufe höher ist als das, woran denen du gescheitert bist. Die + müssen im <a...> als %2B geschrieben werden, und mehr davon (urlencode). Zu diesem Zweck empfehle ich Dir die folgenden Zeilen.
          $encsuche=urlencode($suche);
          echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i&suche=$encsuche\">$end</a> ]" ;
          }
          echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i&suche=$encsuche\">$anf-$end</a> ]" . " ";

          Im maxlenght ist ein html tippfehler. Die + im $sql1 sql2 sind überflüssig (kein '+$suche', sondern nur '$suche', weil sie schon im $suche drin sind. Das $_POST['suche'] hängt vom $_POST['submit'] ab. Hier folgt gerade alles, damit es weniger lang geht:
          PHP-Code:
          echo " <form method=post action='" .$_SERVER['PHP_SELF'] ."'>\n"
          echo 
          "<input class= formular name=suche type=text maxlength=255 size=20 
          value='"
          .$_POST['suche']."'>\n"
          echo 
          "<input class= formular type=submit name=Submit value='Senden'>\n</form>"

          if(
          $_POST['submit'])
          {

            
          $tmp explode(' '$_POST['suche']);

            foreach (
          $tmp as $key => $value) {
            
          $tmp[$key] = '+' $value;
            }
            
            
          $suche implode(' '$tmp);
          }
          else 
          {{ 
          $suche=implode(' ',array()); }}


          $start 0;
          $step 5;
          if (isset(
          $_GET['start'])) {
          $start $_GET['start'];
          }

          if (isset(
          $_GET['suche'])) {
          $suche $_GET['suche'];
          }

          $encsuche=urlencode($suche);

          mysql_connect("xyz""xyz""xyz");
          mysql_select_db("xyz");
          $sql1 "SELECT * from Adressverzeichnis WHERE MATCH (Name,Vorname,Titel) 
          AGAINST ('
          $suche' IN BOOLEAN MODE)";
          $sql2 "SELECT * from Adressverzeichnis WHERE MATCH (Name,Vorname,Titel) 
          AGAINST ('
          $suche' IN BOOLEAN MODE) LIMIT $start$step";
          $result1 mysql_query($sql1);
          $zeilen mysql_num_rows($result1);
          $result2 mysql_query($sql2);

          echo 
          "<table width=400 height=100 align=center cellpadding=10 
          cellspacing=10>" 
          "<tr>" "<td>" "<b>$zeilen Einträge gefunden:</b><br><br>";
          for (
          $i=0;$zeilen>$i;$i=$i+$step) {
          $anf=$i+1;
          $end=$i+$step;
          if (
          $end>$zeilen) {
          $end=$zeilen;
          }
          if (
          $anf==$end) {
          echo 
          "[ <a href=\"$_SERVER[PHP_SELF]?start=$i&suche=$encsuche\">$end</a> ]" ;
          }

          else {

          echo 
          "[ <a href=\"$_SERVER[PHP_SELF]?start=$i&suche=$encsuche\">$anf-$end</a> ]" " ";
          }

          Ich bezweifle, ob Du vom technischen Gehalt deines Skripts etwas begriffen hast.

          PS die edits kommen davon, dass die dumme Vorschau auch 'false' ist.
          und vom else-Zweig für $suche.
          Zuletzt geändert von jhaase; 13.08.2006, 09:58.

          Kommentar


          • #20
            Vielen Dank für Deine Hilfe, aber Dein Skript funktioniert nicht, da ist nämlich ein Tippfehler:
            if($_POST['submit'])
            So...und da ich ja den technischen Inhalt nicht verstehe, hab ichs, damits funktioniert, umgeändert in:
            if($_POST['Submit'])
            und siehe da, schon gehts...
            Vielleicht nur halb so schulmeisterlich und ich hätte wohl nicht hier gepostet, dass auch Du Tippfehler machst...oder vielleicht hast Du´s übersehen?!
            Nichtsdestotrotz, trotzdem nochmals danke für die Hilfe, und auch wenn ich php nicht innerhalb eines halben Tages schon als Vollprofi beherrsche, wie manch anderer hier, habe ich schon einiges gelernt, oder glaubst Du, dies sei mein erstes php - Projekt?!
            Aber Bücher sind ja auch nicht ganz so schulmeisterlich, sondern richten sich oft mal gerne an Anfänger, die es lernen wollen...
            In diesem Sinne...

            Kommentar


            • #21
              Der Fehler war für Dich leicht zu finden, weil php eine genaue Fehlermeldung dazu schreibt - nicht auf dem Niveau des 'funktioniert nicht'.

              Mach den Namen klein, also submit, somit gleich wie alles andere, suche, start, formular usw. usw. kleingeschrieben ist.
              Dann heisst es noch class=formular, und nicht class= formular. Das wäre html, also dein Gebiet.
              Zuletzt geändert von jhaase; 13.08.2006, 16:25.

              Kommentar


              • #22
                Tut mir leid, aber php hat eben keine Fehlermeldung dazu geschrieben, er hat einfach nur keine Suchergebnisse angezeigt, ganz einfach.
                Aber zum Haare - Spalten ist mir der Tag zu schade, ich wollte einfach nur damit andeuten, dass auch Du Fehler machst und nicht unfehlbar bist, aber ich dachte mir schon, dass Du mir die Schuld zuschiebst indem ich eben alles klein schreiben soll. Warum sollte ich? Wenns auch so funktioniert...
                Desweiteren verzeiht html wesentlich mehr Fehler als php, also ist es hier auch egal ob es class =formular heisst oder class=formular...
                Aber wie schon gesagt, dazu ist mir der Tag zu schade...Thread bitte schliessen

                Kommentar


                • #23
                  also ist es hier auch egal ob es class =formular heisst oder class=formular...
                  Nee, nee....
                  Wofür wurden wohl Standards geschaffen?

                  Die Klassenzuordnung funktioniert mit Leerzeichen nicht!!

                  Aber da du keinem so richtig glauben willst, schicks doch mal durch den http://validator.w3.org/
                  Wir werden alle sterben

                  Kommentar


                  • #24
                    Original geschrieben von Sphinx0402
                    Vielen Dank für Deine Hilfe, aber Dein Skript funktioniert nicht, da ist nämlich ein Tippfehler:
                    if($_POST['submit'])
                    So...und da ich ja den technischen Inhalt nicht verstehe, hab ichs, damits funktioniert, umgeändert in:
                    if($_POST['Submit'])
                    und siehe da, schon gehts...
                    Musst nicht so blöd tun, es hat nicht einfach 'nicht funktioniert', sondern eine genaue Fehlermeldung gegeben. Etwas darfst Du schon auch noch selber tun, ich habe deine Datenbank nicht.

                    Wenn Dir php nicht eine genaue Fehlermeldung geliefert hätte, so dass Du nichts selber suchen musstest, hättest Du auch den nicht gefunden. Weil - Fehler suchen kannst Du eben nicht. Zudem ist es eine Disziplinlosigkeit und übler Programmierstil, die Variabeln uneinheitlich zu schreiben. Und wenn man sowas nicht beachtet, machst Du einen Lärm wie ein Wald voll Nilameisen.

                    Wenn Dir aber php dafür keine Fehlermeldung angegeben hat, ist das grad nocheinmal Dein Fehler.
                    Zuletzt geändert von jhaase; 13.08.2006, 19:02.

                    Kommentar

                    Lädt...
                    X