PHP Suchstring mit SQL
Klucyder
- php
0 Andre Gaschler0 Klucyder
0 goldguysaffe0 Klucyder0 goldguysaffe0 Klucyder
Hi Leute ich sitze gerade an meiner Abschlussarbeit (Projekt) und stecke gerade an einem Problem fest.
Ich habe eine SQl abgrage in PHP mit eingebunden wo er mir wenn ich ein Suchbegriff eingebe z.B. Windows die Datensätze die als Titel Windows heissen ausgibt. bloss mit dem Suchstring haut da was nicht hin. Könnt ihr mir vielleicht sagen woran das liegen könnte. Bin für jede hilfe euserst dankbar.
So mein Quelltext.. ich hoffe ihr steigt durch ;)
<?php
if (@$_POST['gesendet'])
{
@$suchstring = $_POST['suchstring'];
@$feld = $_POST['select'];
include("include/connect.inc.php");
$sqlab = "SELECT buecher.id, verleih.id, buecher.titel, buecher.autor, buecher.verlag, buecher.isbn, buecher.inhalt, buecher.auflage, buecher.standort, verleih.zustand";
$sqlab .= " FROM buecher left JOIN verleih ON buecher.id = verleih.id AND $feld like '%$suchstring%' group by buecher.id";
$fehler=0;
if(!isset($suchstring) || $suchstring=="")
{
echo '<font class="fliesstext">Sie haben keinen Suchbegriff eingegeben!<br></font>'; $fehler=1;
echo '<a class="link" href="verleih.php">zurück</a><p>';
}
elseif($fehler==0)
$res= mysql_query($sqlab);
$num = mysql_affected_rows();
if ($num>0)
{
echo "<font class="fliesstext">Es wurde(n) $num Datensa(ä)tz(e) gefunden:<p></font>";
// Tabellenbeginn
echo "<table class="fliesstext" bgcolor="#e7e7e7" cellpadding="1" cellspacing="0" border="1" bordercolor="#ffffff">";
// Kopfzeile der Tabelle ausgeben
echo '<tr bgcolor="#666666" class="modultitle" width="40" align="center"> <td>ID</td> <td width="90" align="center">Titel</td> <td width="80" align="center">Autor</td> <td width="80" align="center">Verlag</td> <td width="85" align="center">ISBN</td> <td width="280" align="center">Inhalt</td>';
echo '<td width="55" align="center">Auflage</td><td width="60" align="center">Standort</td><td width="70" align="center">Status</td><td width="70" align="center">Verleih</td></tr>';
for ($i=0; $i<$num; $i++)
{
$id = mysql_result($res, $i, "id");
$titel = mysql_result($res, $i, "titel");
$autor = mysql_result($res, $i, "autor");
$verlag = mysql_result($res, $i, "verlag");
$isbn = mysql_result($res, $i, "isbn");
$inhalt = mysql_result($res, $i, "inhalt");
$auflage = mysql_result($res, $i, "auflage");
$standort = mysql_result($res, $i, "standort");
$zustand = mysql_result($res, $i, "zustand");
// Ausgabe des Suchergebnisses in Tabellenform
echo "<tr class="footer" valign="top"> <td id="p1" valign="top">$id</td> <td id="p1" valign="top">$titel </td> <td id="p1" valign="top">$autor</td> <td id="p1" valign="top">$verlag</td> <td align="center" valign="top">$isbn</td> <td id="p1" valign="top">$inhalt</td>";
echo "<td align="center" valign="top">$auflage</td> <td align="center" valign="top">$standort</td> <td align="center" valign="top">$zustand</td> <td align="center" valign="top">$verleih <input type='checkbox' name='demo[]' value='1'><br></td></tr>";
}
echo "</table>"; // Tabellenende
?>
<form action="verleihform.php">
<tr>
<td align= "right"><td align= "right"><td align= "right">
<input class="submitButton" type = "Submit" name = "gesendet" value = "Ausleihen">
</td>
</tr>
<?php
}
elseif($fehler==0)
{
echo '<font class="fliesstext">Es wurde kein Datensatz gefunden, der Ihrer Suchanfrage entspricht</font><p>';
}
mysql_close($connect);
}
Was genau läuft denn falsch?
Fehler an Zeilennummer xx?
Oder wird einfach nichts gefunden obwohl das Suchwort sicher vorhanden ist?
Genau er findet nichts obwohl das suchword richtig ist. Wenn ich ab AND bist Suchstring den teil weglöschen würde, würde er mir wenn ich windows eingebe die Datensätze ausgeben aber mit dem Fehler das er mir alle ausgibt als auch z.B. Linux.
Hallo,
[...]
$sqlab = "SELECT buecher.id, verleih.id, buecher.titel, buecher.autor, buecher.verlag, buecher.isbn, buecher.inhalt, buecher.auflage, buecher.standort, verleih.zustand";
$sqlab .= " FROM buecher left JOIN verleih ON buecher.id = verleih.id AND $feld like '%$suchstring%' group by buecher.id";
$sqlab . " WHERE buecher.titel = $suchstring";
[...]
Ich denke so müßte es gehen.
Grüße,
Andre
Also so?
$sqlab = "SELECT buecher.id, verleih.id, buecher.titel, buecher.autor, buecher.verlag, buecher.isbn, buecher.inhalt, buecher.auflage, buecher.standort, verleih.zustand";
$sqlab .= " FROM buecher left JOIN verleih ON buecher.id = verleih.id WHERE buecher.titel = $suchstring group by buecher.id";
Hallo,
Also so?
$sqlab = "SELECT buecher.id, verleih.id, buecher.titel, buecher.autor, buecher.verlag, buecher.isbn, buecher.inhalt, buecher.auflage, buecher.standort, verleih.zustand";
$sqlab .= " FROM buecher left JOIN verleih ON buecher.id = verleih.id WHERE buecher.titel = $suchstring group by buecher.id";
Ja, oder so wie ich es geschrieben habe. Das finde ich übersichtlicher.
Grüße,
Andre
Glabt leider nicht. Er sagt immer noch es wurde kein Datensatz gefunden!