Problem mit Suche und Ergebnisse auf mehreren Seiten

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

  • Problem mit Suche und Ergebnisse auf mehreren Seiten

    Hi,
    habe mir eine simple Suchfunktion (MySql FullText) gebastelt, die mir die Treffer auf mehreren Seiten ausgeben soll. Die Suche funkt wunderbar,auch das aufteilen der einzelnen Seiten. Nur wenn ich auf Seite 2 die weiteren Ergebnisse anschauen möchte, gibt er mir die gesamten datenbankinhalte wieder aus. Irgendwie verliert er das Suchwort auf seiner Reise durch die unendlichkeit...

    ich hoffe, ihr könnt mir diesmal wieder helfen.
    besten dank im vorraus.

    das Formu sieht so aus:

    PHP-Code:
    <form name="form1" method="post" action="./index.php?links=results_archiv">
      <
    input name="eingabe" type="text" class="dateifeld" id="eingabe">
      <
    input name="Submit" type="submit" class="dateifeld" value="Suchen">
    </
    form


    und die ausgabe so:

    PHP-Code:
    <?php
    $spalte 
    $_POST['eingabe'];

    ?>
    <br>
    <a href="index.php?links=suche" class="link">neue Suche</a>
    <link href="../css/style.css" rel="stylesheet" type="text/css"> 
    <? 

    $limit = 3;
    if ($page == 0) $page=1;  
              $sqlab  = "SELECT * FROM $tab_news where subject like '%$spalte%' OR nachricht like '%$spalte%' OR datum like '%$spalte%' ORDER BY subject LIMIT ".($page-1)*$limit.",".$limit;
    $result_articles = mysql_query ($sqlab,$link); 
    list($sql_num,) = split("LIMIT",$sqlab);
    $result_num = mysql_query ($sql_num,$link); 
    $num = mysql_num_rows($result_num); 

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

    if ($num==0) echo "<b>keine passenden Datensätze gefunden</b>"; 

    while ($daten=mysql_fetch_array($result_articles))
     {
    $nachricht = ($daten['nachricht']);
    ?>

    <table width="85%" height="8" border="0" cellpadding="0" cellspacing="0" >
      <tr > 
        <td width="185" height="8" valign="middle"><strong><img src="./lib/images/news.gif" width="10" height="9">&nbsp;<? echo $daten[subject]; ?></strong></td>
        <td height="8" valign="middle">
    <div align="center"></div>
          <div align="right" ><strong><a href="#" onMouseOver="this.T_WIDTH=80; return escape('<div align=\center\>erstellt von: <br><? echo $daten[author]; ?><\div>')" style="color : #333333; text-decoration: none; font-size: 10px;"><? echo $daten[datum] ?></a></strong></div></td>
      </tr>
    </table>
    <table width="85%" cellspacing="0">
      <tr> 
        <td align="right"> 
          <?
    //Hier wird geprüft ob ein Bild vorhanden ist
    if ($daten['type']) { ?>
          <a href="javascript:popUp('./lib/include/newspic_f.php<? echo '?id='.$daten[id].'' ?>')" style="text-decoration: none"><img src="./lib/images/newspic.gif" border="0"></a> 
          <?
    } else {
            echo "";
    }
    ?>
        </td>
      </tr>
      <tr> 
        <td valign="top" class="content"> 
          <?
    //Hier wird geprüft ob News vorhanden sind 
    if ($daten['nachricht'])
    {
                          echo  " $nachricht";
       } else {
                          echo "Es wurden noch keine News eingetragen. <br> Um News einzutragen,
                                klicken Sie bitte <a href=admin.php>hier</a>";
    }
    ?>
        </td>
      </tr>
      <tr> 
        <td> 
      <tr> 
        <td height="6" colspan="5" class="lineunder"> </table>
    <? 
    }
    ?>
    <?
     if ($num > 0)
     {
      echo ceil($num/$limit);
      if (ceil($num/$limit) == 1) echo " Seite";
       else echo " Seiten";
      echo "<br><br>";
      if ($page > 1)
       echo "<a href=\"./index.php?links=results_archiv&page=".($page-1)."&spalte=".rawurlencode($spalte)."\"class=\"link\">vorherige</a> &nbsp;";
      if ($page < $num/$limit && $num > $num/$limit)
       echo " <a href=\"./index.php?links=results_archiv&page=".($page+1)."&spalte=".rawurlencode($spalte)."\"class=\"link\">nächste</a> &nbsp;";
      echo "<br>";
      for ($i=1;$i<$num/$limit+1 and $num/$limit > 1;++$i)
       {
        if ($page == $i) echo "<b class=\"link\">[$i]</b> &nbsp;";
         else echo "<a href=\"./index.php?links=results_archiv&spalte=".rawurlencode($spalte)."&page=$i\"class=\"link\">$i</a> &nbsp;";
       }
     }
    ?>

  • #2
    übergibst du denn das suchwort + startwert?

    Kommentar


    • #3
      eigentlich schon. wenn ich über den link mit der maus gehe, steht da auch schön https://localhost/cms/index.php?link...age=2&spalte=d in der statusleiste

      Kommentar


      • #4
        und wo ist da dein suchparameter aufgeführt ....?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          in diesem fall wäre "d" meine suche

          wird aber nicht übergeben. warum nur?

          Kommentar


          • #6
            Original geschrieben von römer
            in diesem fall wäre "d" meine suche
            wird aber nicht übergeben. warum nur?
            $spalte wird bei dir im script aus dem $_POST-array geholt.

            bei der übergabe als parameter im URL der seite, ist die übergabemethode aber GET, also steht der wert jetzt im array $_GET ...

            der wert von d wird also durchaus übergeben - du fragst lediglich etwas ganz anderes ab.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              kannst du mir vielleicht zeigen wo ich das $GET mit einbauen muss?

              Kommentar


              • #8
                Original geschrieben von römer
                kannst du mir vielleicht zeigen wo ich das $GET mit einbauen muss?
                is' nich dein ernst, oder ...?

                du hast ganz oben
                PHP-Code:
                $spalte $_POST['eingabe']; 
                stehen.

                wenn du jetzt den wert dafür aber als variable d per GET übergibst, muss dort stattdessen logischerweise ... = $_GET['d'] stehen.

                aber dann funktioniert der erste aufruf wahrscheinlich nicht mehr, wenn du aus einem POST-formular den wert als 'eingabe' übergibst.
                deshalb solltest du evtl. auch dafür gleich ein GET-formular verwende ...
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar

                Lädt...
                X