Hi Leute,
ich Suche eine Suche!
Sie muss nicht besonders sein. Nur einfach aufgebaut (bearbeitbar), aber mit ein paar kniffligen Funktionen.
Und zwar soll sie mir den Inhalt aus der MySQL-Datenbank auslesen können, den ich festlege. Sie sollte so aufgebaut sein:
Vor der Sucheingabe wird eine Box mit Inschrift "Suchwort hier eingeben" und Absende-Button "Suchen" angezeit.
Angezeigt wird nach der Suchabfrage das Resultat, welches nur den Titel der aus der Tabelle "MatzeCMS_sites" die Reihe "title" trägt und die Hits (wie oft kommt das Suchwort in der Tabelle "MatzeCMS_sites" in der Reihe "text" vor) anzeigt. Die Hits sollen sozusagen gespeichert und angezeigt werden. [kein Textinhalt soll aus der Reihe text freigegeben werden, da dieser in HTML gespeichert wurde; aber die Reihe text soll durchsucht werden]
Es soll aber später der Titel verlinkt werden. Dazu wird aus der Seite die ID aus "MatzeCMS_sites" die Reihe "ID" herausgeholt und in einen Link verpackt.
z.B. sites.php?id=10
Dieser Link soll sich im neuem Fenster (target_blank) öffnen.
Am besten wäre dann noch eine Blätterfunktion, sodass nur 25 Ergebnisse pro Seite angezeigt wird.
Kennt jemand eine Suche, die man so ungefähr bearbeiten kann oder kennt jemand ein Tutorial oder hat jemand Lust so etwas zu programmieren?
Ich kenn mich zwar recht gut aus, aber genau so wie ich es wollte ging nicht. Ich kam immer die "text" komplett ausgelesen mit Inhalt (den ich gar nicht wollte) und der Link hat nicht gespasst. Außerdem waren Fehler drin.
Mein Code:
search.php
Schon mal Danke im Vorraus. Ach ja, ich bin ehrlich: da sind etliche Fehler drin. Und vieles, was ich anders machen wollte, einfach nur billig ersetzt.
Gruß
Matze
ich Suche eine Suche!
Sie muss nicht besonders sein. Nur einfach aufgebaut (bearbeitbar), aber mit ein paar kniffligen Funktionen.
Und zwar soll sie mir den Inhalt aus der MySQL-Datenbank auslesen können, den ich festlege. Sie sollte so aufgebaut sein:
Vor der Sucheingabe wird eine Box mit Inschrift "Suchwort hier eingeben" und Absende-Button "Suchen" angezeit.
Angezeigt wird nach der Suchabfrage das Resultat, welches nur den Titel der aus der Tabelle "MatzeCMS_sites" die Reihe "title" trägt und die Hits (wie oft kommt das Suchwort in der Tabelle "MatzeCMS_sites" in der Reihe "text" vor) anzeigt. Die Hits sollen sozusagen gespeichert und angezeigt werden. [kein Textinhalt soll aus der Reihe text freigegeben werden, da dieser in HTML gespeichert wurde; aber die Reihe text soll durchsucht werden]
Es soll aber später der Titel verlinkt werden. Dazu wird aus der Seite die ID aus "MatzeCMS_sites" die Reihe "ID" herausgeholt und in einen Link verpackt.
z.B. sites.php?id=10
Dieser Link soll sich im neuem Fenster (target_blank) öffnen.
Am besten wäre dann noch eine Blätterfunktion, sodass nur 25 Ergebnisse pro Seite angezeigt wird.
Kennt jemand eine Suche, die man so ungefähr bearbeiten kann oder kennt jemand ein Tutorial oder hat jemand Lust so etwas zu programmieren?
Ich kenn mich zwar recht gut aus, aber genau so wie ich es wollte ging nicht. Ich kam immer die "text" komplett ausgelesen mit Inhalt (den ich gar nicht wollte) und der Link hat nicht gespasst. Außerdem waren Fehler drin.
Mein Code:
search.php
PHP:
<font face="tahoma" size="4">
<font face="Verdana, Arial, Helvetica, sans-serif"><h3>Suche</h3></font>
</font>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post">
<br>
<font face="Verdana, Arial, Helvetica, sans-serif"> Suchbegriff eingeben
<input type="text" name="words" value="<?php echo($words); ?>">
<br>
<br>
<br>
<input type="hidden" name="good" value="yes">
<input type="submit" value="Suchen">
</font>
</form>
<p><font face="Verdana, Arial, Helvetica, sans-serif"><br>
<br>
<?
if($_POST['good']=='yes')
{
echo("<font face=\"tahoma\" size=\"3\" color=\"green\"><b>Ergebniise für $words</b></font><br><br>");
$location = "localhost"; // database host (localhost)
$username = "xxx"; // mysql username
$password = "xxx"; //mysql password
$database = "xxx"; //mysql database name
$db_table = "MatzeCMS_sites"; // mysql table name to search
$mysql_row = "text"; // This is the row in your mysql database that you want to search for text in.
$start = (isset($start)) ? abs((int)$start) : 0;
$limit = 10; // Datensätze pro Ausgabeseite
// Feststellen der Anzahl der verfügbaren Datensätze.
$resultID = @mysql_query("SELECT COUNT(ID) FROM ".$db_table);
$total = @mysql_result($resultID,0);
// Ggf. $start korrigieren (falls Parameter in
// der URL manipuliert wurde)
$start = ($start >= $total) ? $total - $limit : $start;
$query = "SELECT * FROM ".$db_table." LIMIT ".$start.",".$limit;
$resultID = @mysql_query($query);
$conn = mysql_connect("$location","$username","$password");
if (!$conn) die ("Could not connect MySQL");
mysql_select_db($database,$conn) or die ("Could not open database");
$query = "ALTER TABLE $db_table ORDER BY id DESC";
$result = mysql_query($query); // bad coding yes ;)
$query = "SELECT * FROM $db_table";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
while($row = mysql_fetch_array($result)){
if(preg_match("/$words/i", $row[$mysql_row]))
{
$rawTitle = ($row[Title]);
$rawDeepLink1 = ($row[DeepLink1]); //yes strange variable names. It works so it doesnt matter.
$rawDescription = ($row[Description]); //T just grab extra data to be added with the search tool
$rawDisplayPrice = ($row[DisplayPrice]);
$rawProductCategoryName = ($row[ProductCategoryName]);
$rawKeywords = ($row[Keywords]);
$rawImg120_url = ($row[Img120_url]);
$rawImg_url = ($row[Img_url]);
$newnews = preg_replace("/$words/i", "<b><font color=\"red\">$words</font></b>", $row[$mysql_row]);
$display = '<h2 font face="tahoma" font-size: 13pt><b><a href=' . $rawDeepLink1 . ' TARGET=_blank TITLE="' . $rawDescription_short . '" STYLE="text-decoration: none">Mehr Infos</a> </font></h2>';
echo($display);
$foundcount++;
}
$totalcount++;
}
if(is_null($foundcount)){$foundcount=0;}
echo("<font face=\"tahoma\" size=\"3\" color=\"green\"><b>$foundcount Treffer für: $words</b></font>");
}
if ($start > 0)
{
$newStart = ($start - $limit < 0) ? 0 : ($start-$limit);
echo "<a href=".$_SERVER['PHP_SELF']."?start=".$newStart
."><< zurück</a>";
}
if ($start + $limit < $total)
{
$newStart = $start + $limit;
echo " <a href=".$_SERVER['PHP_SELF']."?start=".$newStart
.">weiter >></a>";
}
?>
Gruß
Matze