Hi Membs!
Dachte bis vor Kurzem dass meine Suchabfrage alle Suchmöglichkeiten abdeckt aber dem scheint aber leider nicht so.
Hab in meiner DB eine Tabelle mit 2 Spalten "name" und "vorname" mit z.T ähnlichen Einträgen. Die Suchabfrage bezieht sich auf beide Spalten d.h Teiltreffer aus beiden Spalten sollen in einer Tabelle angezeigt werden. Das Problem ist nicht die Suchabfrage in Bezug auf das Feld in das der User seinen Suchbegriff eingibt sondern die Beziehung der Spalten zueinander denn es wird nur dann ein Treffer ausgegeben wenn in beiden Spalten der Suchbegriff zu finden ist. Ich weiß leider nicht wo der Fehler liegt. Hab bereits die einzelnen Variablen umbenannt und hab damit zumindest denn Teilerfolg erzielt dass bei einem Teffer in der Spalte "name" diese nicht mehr mit der Spalte "vorname" verglichen wird aber leider funktioniert´s nicht andersrum. Ich hoff´es is einigermaßen verständlich...
z.b. Tabelleninhalt:Spalte name: holes Spalte vorname: Louise
Spalte name: widow Spalte vorname: Holger
Usereingabe: hol
Ergebnis: beide Einträge werden angezeigt.
Allerdings bei Usereingabe: Holger oder z.B. Holg
Ergebnis: Kein Eintrag wird angezeigt da in Spalte "name" keine Übereinstimmung mit
der Usereingabe. Ausgabe (beider Spalten) sollte aber logischerweise widow Holger sein
Hier der Code der Abfrage:
Code:
<html>
<head>
<title>
db-eingabe.php
</title>
<body bgcolor="#EFEFEF">
<?php
mysql_connect("","root");
mysql_select_db("firma");
$sqlab = "select name, vorname, titel2, titel3, titel4, verfuegbarkeit, personalnummer, bewertung from personen";
$sqlab .= " where name like '%".$_POST["autor"]."%' order by name asc";
$res = mysql_query($sqlab);
$num = mysql_num_rows($res);
echo "<table border='1' width='100%'>";
echo "<tr><td>Name</td><td>Vorname</td>";
echo "<td>Titel2</td><td>Titel3</td><td>Titel4</td><td>Verfügbarkeit</td><td>Bewertung</td></tr>";
while ($dsatz = mysql_fetch_assoc($res))
{
echo "<tr><td>".'<a href="Details.php?id='.$dsatz["personalnummer"].'" style="text-decoration:none">'.$dsatz['name'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz["personalnummer"].'" style="text-decoration:none">'.$dsatz['vorname'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz['personalnummer'].'" style="text-decoration:none">'.$dsatz['titel2'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz['personalnummer'].'" style="text-decoration:none">'.$dsatz['titel3'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz['personalnummer'].'" style="text-decoration:none">'.$dsatz['titel4'].' </a>'."</td>";
if ($dsatz["verfuegbarkeit"] == "ja")
{
echo "<td><center><font color='#00aa00'>" . $dsatz["verfuegbarkeit"] . "</font></center></td>";
}
else
{
echo "<td><center><font color='#ff0000'>" . $dsatz["verfuegbarkeit"] . "</font></center></td>";
}
$pic = '<img src="star.jpg" height="16" width="16">';
if ($dsatz["bewertung"] > "4")
{
echo "<td>$pic$pic$pic$pic$pic<td>";
}
else if ($dsatz["bewertung"] >"3")
{
echo "<td>$pic$pic$pic$pic</td>";
}
else if ($dsatz["bewertung"] >"2")
{
echo "<td>$pic$pic$pic</td>";
}
else if ($dsatz["bewertung"] >"1")
{
echo "<td>$pic$pic</td>";
}
else if ($dsatz["bewertung"] >"0")
{
echo "<td>$pic</td>";
}
else if ($dsatz["bewertung"] = " ")
{
echo "<td>Keine Bewertung</td>";
}
}
$bitte = "select vorname, name, titel2, titel3, titel4, verfuegbarkeit, personalnummer, bewertung from personen";
$bitte .= " where vorname like '%".$_POST["autor"]."%'";
$test = mysql_query($bitte);
$zeile = mysql_num_rows($test);
while ($dsatz = mysql_fetch_assoc($test))
{
echo "<tr><td>".'<a href="Details.php?id='.$dsatz["personalnummer"].'" style="text-decoration:none">'.$dsatz['name'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz["personalnummer"].'" style="text-decoration:none">'.$dsatz['vorname'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz['personalnummer'].'" style="text-decoration:none">'.$dsatz['titel2'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz['personalnummer'].'" style="text-decoration:none">'.$dsatz['titel3'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz['personalnummer'].'" style="text-decoration:none">'.$dsatz['titel4'].' </a>'."</td>";
if ($dsatz["verfuegbarkeit"] == "ja")
{
echo "<td><center><font color='#00aa00'>" . $dsatz["verfuegbarkeit"] . "</font></center></td>";
}
else
{
echo "<td><center><font color='#ff0000'>" . $dsatz["verfuegbarkeit"] . "</font></center></td>";
}
$pic = '<img src="star.jpg" height="16" width="16">';
if ($dsatz["bewertung"] > "4")
{
echo "<td>$pic$pic$pic$pic$pic<td>";
}
else if ($dsatz["bewertung"] >"3")
{
echo "<td>$pic$pic$pic$pic</td>";
}
else if ($dsatz["bewertung"] >"2")
{
echo "<td>$pic$pic$pic</td>";
}
else if ($dsatz["bewertung"] >"1")
{
echo "<td>$pic$pic</td>";
}
else if ($dsatz["bewertung"] >"0")
{
echo "<td>$pic</td>";
}
else if ($dsatz["bewertung"] = " ")
{
echo "<td>Keine Bewertung</td>";
}
}
echo "</table>";
if ($num == 0)
{
header ('Location: Keine_Sucheintraege.html');
};
?>
</body>
</html>
Vielleicht weiß jemand warum die Spalten nach der Eingabe selbst noch verglichen werden. Ich will ja nicht das er mir nur die Treffer die in beiden Spalten vorkommen auswirft sondern pro Spalte jeweils.
lg + Dank im Voraus
maxi