[1.2.x]Suchmod

In diesem Forum kannst du Erweiterungen zu EasyHP und kleine Code-Schnipsel downloaden.

Moderator: Supporter

Benutzeravatar
daniel
Ehemaliger
Beiträge: 413
Registriert: 13. März 2008, 16:49
Wie bist du auf EasyHP gekommen?: Werbung auf phpBB.de
Wohnort: Bremen
Kontaktdaten:

[1.2.x]Suchmod

Beitrag von daniel »

Erlaubt die Suche auf textseiten. Allerdings nur die, die jeder Gast sehen kann.

Danke an matze93, der mich darauf hingewiesen hat, dass im Lexikon ein Suchscript ja vorhanden ist und dieses für die Textseiten genauso nützlich ist.
Dateianhänge
Suche_1.0.zip
Hier nun ohne fehler
(998 Bytes) 592-mal heruntergeladen
matze93
Inaktiv
Beiträge: 314
Registriert: 21. Januar 2009, 14:10

Re: Suchemod

Beitrag von matze93 »

Fehlermeldung:

Code: Alles auswählen

Etwas stimmte mit dem Query nicht: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE level=5' at line 7
Benutzeravatar
daniel
Ehemaliger
Beiträge: 413
Registriert: 13. März 2008, 16:49
Wie bist du auf EasyHP gekommen?: Werbung auf phpBB.de
Wohnort: Bremen
Kontaktdaten:

Re: Suchemod

Beitrag von daniel »

hab den Fehler berichtigt.
hoff ich jedenfalls.
matze93
Inaktiv
Beiträge: 314
Registriert: 21. Januar 2009, 14:10

Re: Suchemod

Beitrag von matze93 »

Nun ja, ich hab einfach

Code: Alles auswählen

WHERE level=5
entfernt und es hat funktioniert. So sind zwar versteckte oder Seiten für Mods in der Suche auffindbar, aber User können diese nicht sehen. Außerdem habe ich solche Seiten nicht. Also hat sich für mich schon alles geklärt.
Benutzeravatar
daniel
Ehemaliger
Beiträge: 413
Registriert: 13. März 2008, 16:49
Wie bist du auf EasyHP gekommen?: Werbung auf phpBB.de
Wohnort: Bremen
Kontaktdaten:

Re: Suchemod

Beitrag von daniel »

ja. es lag dadran, dass

Code: Alles auswählen

	WHERE `level`=5
und

Code: Alles auswählen

	ORDER BY `title` ASC
in der falschen reinfolge waren.
matze93
Inaktiv
Beiträge: 314
Registriert: 21. Januar 2009, 14:10

Re: Suchmod

Beitrag von matze93 »

Ja, ich habs auch verbessert. Aber du hast bei der ausgabe der Seiten .php geschrieben. Das sollte eigentlich sites.php sein, sonst öffnet er die seite nicht, da er sie nicht findet.
Benutzeravatar
daniel
Ehemaliger
Beiträge: 413
Registriert: 13. März 2008, 16:49
Wie bist du auf EasyHP gekommen?: Werbung auf phpBB.de
Wohnort: Bremen
Kontaktdaten:

Re: Suchmod

Beitrag von daniel »

ok.
danke.
Bin jetzt am Leptop. Werde mich drum kümmern, wenn ich wieder an meinem Desktop-PC bin.
matze93
Inaktiv
Beiträge: 314
Registriert: 21. Januar 2009, 14:10

Re: Suchmod

Beitrag von matze93 »

Und dann würde ich noch

Code: Alles auswählen

search();
mit

Code: Alles auswählen

if( isset( $_POST["search"] ) && !empty( $_POST["search"] ) )
{
  search();
}  
ersetzen. Dann sieht man die Ausgabe nur, wenn wirklich etwas eingegeben wird.

Und dann kann man natürlich noch ein paar Spielerreihen machen:

Code: Alles auswählen

print "<input size='30' maxlength='50' type='text' name ='search' />
mit

Code: Alles auswählen

print "<input size='30' maxlength='50' value='Suchbegriff hier eingeben' type='text' name ='search' />
ersetzen
matze93
Inaktiv
Beiträge: 314
Registriert: 21. Januar 2009, 14:10

Re: Suchmod

Beitrag von matze93 »

Bei mir würde dann die fertige Suche so aussehen:

Code: Alles auswählen

<?php
define("IN_EASYHP", true);

include "includes/mysql.php";
include "common.php";
include "includes/website.php";

echo make_message(SITE_IMG, "Suche", "Diese Homepage durchsuchen", '', '');

echo "<div id='content'><form action='search.php?action=search' method='POST'>";
echo "<input size='30' maxlength='50' value='Suchbegriff hier eingeben' type='text' name ='search' /><br>";
echo "<input type='submit' name='absenden' value='Suchen'class='button' />";
echo "</form><br /><br />";

function search()
{
    echo "<table>";
    $search = mysql_real_escape_string($_POST['search']);
    $table = SEARCH_TABLE;
    $ergebnisse = array();
    $sql = 'SELECT
        id,
        title,
        text
    FROM
        '.SITES_TABLE.'
    WHERE `level`=5
    ORDER BY `title` ASC';

    $result = mysql_query($sql);
    if (!$result) {
        die ('Etwas stimmte mit dem Query nicht: '.mysql_error());
    }
    
    while ($row = mysql_fetch_assoc($result))
    {
        $seitenid = $row['id'];

        $pos = stripos($row['title'], $search);
        if ($pos !== false)
        {
            echo "<tr><td>";
            echo "<font size='4'><a href='sites.php?id=".$seitenid."'>".$row['title']."</a></font>";
            $gefunden = 1;
            $ergebnisse[] = $row['id'];
        }
    }
    if (!$gefunden)
        echo "<tr><td>Keine Seiten gefunden die '$search' im namen enthalten</td></tr>";
    $gefunden = "";
    echo "<tr><td><br /><font size='4'>'$search' kommt auf folgenden Seiten vor:</font></td></tr>";
    $result = mysql_query($sql);
    if (!$result) {
        die ('Etwas stimmte mit dem Query nicht: '.mysql_error());
    }
    while ($row = mysql_fetch_assoc($result))
    {
        $pos = stripos($row['text'], $search);
        if ($pos !== false)
        {
            if(!in_array($row['id'],$ergebnisse))
            {
                echo "<tr><td>";
                echo "<font size='4'><a href='sites.php?id=".$row['id']."'>".$row['title']."</a></font>";
                echo "</td></tr>";
                $gefunden = 1;
            }
        }
    }
    if (!$gefunden)
        echo "<tr><td>keine Suchergebnisse</td></tr>";
    echo "</table>";
}

if( isset( $_POST["search"] ) && !empty( $_POST["search"] ) )
{
  search();
}  

echo "</div>";

footer(0);

?>
Ich bedanke mich dann mal für deine Vorlage Daniel.
Zuletzt geändert von matze93 am 27. Oktober 2009, 13:18, insgesamt 1-mal geändert.
Benutzeravatar
daniel
Ehemaliger
Beiträge: 413
Registriert: 13. März 2008, 16:49
Wie bist du auf EasyHP gekommen?: Werbung auf phpBB.de
Wohnort: Bremen
Kontaktdaten:

Re: Suchmod

Beitrag von daniel »

fetife Suche?
Antworten