Habe ein Problem mit meinem Suchformular (via DW normal mit SQL erstellt). Grundsätzlich funktioniert es. Aber auf der Ergebnisseite werden mir immer auch alle Texte angezeigt, die irgendwelche Zahlen beinhalten, auch wenn der eigentliche Suchbegriff nicht darin enthalten ist.
Also: Ich suche nach "Datenbankproblem". Es werden mir alle Texte angzeigt, die "Datenbankproblem" enthalten. ZUDEM werden mir alle Texte angezeigt, die das Wort Datenbankproblem nicht enthalten, sondern z. B. "150 Jahre Firma XY".
Habe die SQL-Abfrage mehrere male neu erstellt, aber checke nicht, was ich falsch mache.
Suche.php:
PHP-Code:
<html><!-- InstanceBegin template="Templates/home.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<!-- InstanceBeginEditable name="doctitle" -->
<title>Suche</title>
<!-- InstanceEndEditable --><base target="_self">
<link href="css/standarddesign.css" rel="stylesheet" type="text/css">
<!-- InstanceBeginEditable name="head" --><!-- InstanceEndEditable -->
</head>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top"><!-- InstanceBeginEditable name="inhalt" -->
<p class="haupttitel">Suche</p>
<p class="normal">Geben Sie in untenstehendem Feld einen Suchbegriff ein (z. B. "Datenbankfehler") und klicken Sie anschliessend auf "
Suchen". </p>
<form name="searchform" method="get" action="suchergebnis.php">
<p>
<input name="suchbegriff" type="text" id="suchbegriff">
<input name="suchen" type="submit" id="suchen" value="Suchen">
</p>
</form>
<!-- InstanceEndEditable --></td>
</tr>
</table>
<br>
<p> </p>
</body>
<!-- InstanceEnd --></html>
Suchergebnis:
PHP-Code:
<?php require_once('Connections/dbconnect.php'); ?>
<?php
//if (isset($_GET['suchbegriff'])) {
$colname_suche = (get_magic_quotes_gpc()) ? $_GET['suchbegriff'] : addslashes($_GET['suchbegriff']);
//}
mysql_select_db($database_datenbankname, $dbconnect);
$query_suche = sprintf("SELECT txid, txpreview, DATE_FORMAT(`txdatum`, '%%d.%%m.%%Y') as datum, txminipic, txtitel, txheader,
txhaupttext, txverfasser, txthema, txarchiv FROM texte WHERE txpublik = 'true' and (txtitel or txpreview or txheader or txhaupttext LIKE '%
%%s%%') ORDER BY txdatum desc", $colname_suche);
$suche = mysql_query($query_suche, $dbconnect) or die(mysql_error());
$row_suche = mysql_fetch_assoc($suche);
$totalRows_suche = mysql_num_rows($suche);
$row_themen2['txdatum'] = preg_replace ("/([0-9]{4})-([0-9]{2})-([0-9]{2})/", "$3.$2.$1", $row_themen2['txdatum']);
?>
<html><!-- InstanceBegin template="Templates/home.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<!-- InstanceBeginEditable name="doctitle" -->
<title>Suchergebnis</title>
<!-- InstanceEndEditable --><base target="_self">
<link href="css/standarddesign.css" rel="stylesheet" type="text/css">
<!-- InstanceBeginEditable name="head" --><!-- InstanceEndEditable -->
</head>
<body bgcolor="#FFFFFF">
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top"><!-- InstanceBeginEditable name="inhalt" -->
<p class="haupttitel">Suchergebnis</p>
<p class="normal">Wählen Sie den gewünschten Text... </p>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<?php do { ?>
<tr valign="top">
<td><a href="text.php?txid=<?php echo $row_suche['txid']; ?>"><img src="<?php echo $row_suche['txminipic']; ?>" border="0" class="
bilderrahmen"></a></td>
<td><p class="schlussbemerkung"><span class="schlussbemerkung"><strong>Rubrik: </strong></span><span class="grossbuchstaben"
><strong><?php echo $row_suche['txthema']; ?></strong></span><span class="schlussbemerkung"><br>
<?php echo $row_suche['datum']; ?></span>, <?php echo $row_suche['txverfasser']; ?><br>
<a href="text.php?txid=<?php echo $row_suche['txid']; ?>"><?php echo $row_suche['txtitel']; ?></a><br>
<span class="normal"><?php echo $row_suche['txpreview']; ?></span><br>
</p> </td>
</tr>
<tr valign="top" class="strichoben">
<td width="100"> </td>
<td> </td>
</tr>
<?php } while ($row_suche = mysql_fetch_assoc($suche)); ?>
</table>
<p> </p>
<!-- InstanceEndEditable --></td>
</tr>
</table>
<br>
<p> </p>
</body>
<!-- InstanceEnd --></html>
<?php
mysql_free_result($suche);
?>
Wäre echt froh, wenn mir jemand helfen könnte. Vielen Dank.
Gruss weber-web