T-offline
19-07-2001, 14:20
Ich suche ein Script um in einer SQl-Datenbank nach bestimmten Wörtern zu suchen und die Ergebnisse sollen auf einer html-Seite ausgegeben werden.
Die db hat folgende Felder: Name;Vormane;plz;ort:strasse;beschreibung .
Wird der Suchbegriff in einem der Felder gefunden sollen die Daten ähnlich wie bei einer Suchmaschine ausgegeben werden.
Es handelt sich um eine db bei puretec.
Gibt es ein fertiges Script (möglichst mit dt. Beschreibung) oder muss ich dies alles selbst schreiben?
Wer nett wenn einer einen Tipp hätte.
Danke!
ist dich ganz einfach:
Machsts nen Formular (nennst das textfeld "suche"), absenden
das war seite 1
Seite 2:
$tabelle="deintabellenname";
$query="SELECT * FROM $tabelle WHERE Name='$suche' OR Vorname='$suche' OR plz='$suche' OR ort='$suche' OR strasse='$suche' OR beschreibung='$suche'";
$result=mysql_query($query,$db) or die ("<center><h3>Keine Verbindung zur Tabelle PartnerOption möglich</h3></center>");
while($output=mysql_fetch_array($result))
{
echo "hier beginnt die Ausgabe $output[0]";
das wars schon :)
shadowman23
20-07-2001, 00:16
Habs so probiert :
[suchmaschine.php]:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Title here!</title>
</head>
<BODY BGCOLOR="#FFFFFF" style="font-family: verdana, helvetica, arial" topmargin="0" leftmargin="0" vlink="#0000FF" alink="#0000FF" link="#0000FF">
<form action = "suchmaschine1.php" method = "post">
<input type="text" name="su<i></i>che">
<input type="submit" name="abgeschickt">
<input type="reset">
</form>
</body>
</html>
und
[suchmaschine1.php] :
<?
$db = mysql_connect(localhost,web153,shadow23);
$tabelle="usr_web153_2";
$query="SELECT * FROM $tabelle WHERE RELEASEDATE='$suche' OR RELEASENAME='$suche' OR RELEASECREW='$suche' OR DiSKS='$suche' OR NFO='$suche' OR SFV='$suche'";
$result=mysql_query($query,$db) or die ("<center><h3>Keine Verbindung zur Tabelle PartnerOption möglich</h3></center>");
while($output=mysql_fetch_array($result))
{
echo "hier beginnt die Ausgabe $output[0]";
?>
Ich bekomme immer diesen Error:
Parse error: parse error in C:\apache\htdocs\isocentral\suchmaschine1.php on line 11
Vielleicht kannste ja mal posten wie es fertig aussehen müsste :D
THX
schmalle
20-07-2001, 09:26
<?
// deine daten
$server= "localhost";
$user= "usr_web153_2";
$passwort= "???????";
$datenbank= "web153";
$tabelle= "shadow23";
// Datenbank auswählen
MYSQL_CONNECT($server, $user, $passwort) or die ( "<center> <H3>Datenbankserver nicht erreichbar</H3>");
MYSQL_SELECT_DB($datenbank) or die ( "<center> <H3>Datenbank nicht vorhanden</H3>");
// Suchen
$result=MYSQL_QUERY(" SELECT * FROM $tabelle WHERE RELEASEDATE='$suche' OR RELEASENAME='$suche' OR RELEASECREW='$suche' OR DiSKS='$suche' OR NFO='$suche' OR SFV='$suche'");
// Ergebnisse zählen
$num_rows = mysql_num_rows($result);
echo "Es wurden $num_rows Ergebnisse gefunden!";
// kopf der seite ausspucken
echo "<table>";
echo "<tr>";
echo "<th>";
echo "releasedate";
echo "</th> <th>";
echo "rleasename";
echo "</th> <th>";
echo "releasecrew";
echo "</th> <th>";
echo "disks";
echo "</th> </tr>";
// gefundene daten ausspucken
while($myrow=mysql_fetch_row($result))
{
echo "<tr>";
echo "<td>";
echo "$myrow[0]";
echo "</td>";
echo "<td>";
echo "$myrow[1]";
echo "</td>";
echo "<td>";
echo "$myrow[2]";
echo "</td>";
echo "<td>";
echo "$myrow[3]";
echo "</td>";
echo "</tr>";
}
// bottom der seite
echo "</table>";
?>
// so sollte es funzen!!!
du kannst noch ne if schleife einbauen, sodass die tabelle nur aufgebaut wird, wenn auch ergebnisse gefunden wurden.
shadowman23
20-07-2001, 10:17
ok :) Hab alles so eingebaut 1:1 wie du es beschrieben hast, aber er findet nie etwas obwohl die Einträge in der DB existieren :(
Scheint noch ein Bug drinzusein :(
Thx anyway :D
schmalle
20-07-2001, 10:24
bekommst du ne fehlermeldung????
falls nicht, nimm mal "where bla bla" raus. wenn er dann noch immer nix findet, solltest du mal über überprüfen, was er bei $suche überhaupt übermittelt bekommt.
( echo "$suche"; )
shadowman23
20-07-2001, 11:34
Also hier mal mein script :
<?
// deine daten
$server= "localhost";
$user= "shadowman23";
$passwort= "damaster";
$datenbank= "usr_web153_2";
$tabelle= "spiele";
// Datenbank auswählen
MYSQL_CONNECT($server, $user, $passwort) or die ( "<center> <H3>Datenbankserver nicht erreichbar</H3>");
MYSQL_SELECT_DB($datenbank) or die ( "<center> <H3>Datenbank nicht vorhanden</H3>");
// Suchen
$result=MYSQL_QUERY(" SELECT * FROM $tabelle WHERE RELEASENAME='$suche'");
// Ergebnisse zählen
$num_rows = mysql_num_rows($result);
echo "Es wurden $num_rows Ergebnisse gefunden!";
// kopf der seite ausspucken
echo "<table>";
echo "<tr>";
echo "<th>";
echo "releasedate";
echo "</th> <th>";
echo "rleasename";
echo "</th> <th>";
echo "releasecrew";
echo "</th> <th>";
echo "disks";
echo "</th> </tr>";
// gefundene daten ausspucken
while($myrow=mysql_fetch_row($result))
{
echo "<tr>";
echo "<td>";
echo "$myrow[0]";
echo "</td>";
echo "<td>";
echo "$myrow[1]";
echo "</td>";
echo "<td>";
echo "$myrow[2]";
echo "</td>";
echo "<td>";
echo "$myrow[3]";
echo "</td>";
echo "</tr>";
}
// bottom der seite
echo "Dein Suchwort ist $suche";
echo "</table>";
?>
Das Suchwort erkennt er richtig. Eine Fehlermeldung kommt auch nie. Er findet einfach nix obwohl der Eintrag (nach dem ich suche) existiert :(
für Volltextsuche einfach vor der Query $suche = "%$suche%";
Das %-Zeichen entspricht im SQL-Like-Befehl dem * bei Unix -> null oder beliebig viele beliebige Zeichen.