Datenbanksuche
Oliver Baer
- php
0 Oliver
Hi folx,
ich habe ne suche für meine MySQL Tabelle gebaut, funktioniert soweit auch ganz gut, nur lassen sich keine Einträge finden, wenn man nur ein Teil des Suchbegriffs eingibt.
Also, die Abfrage geht so:
<?php
$colname_Recordset1 = "";
if (isset($HTTP_GET_VARS['s'])) {
$colname_Recordset1 = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['s'] : addslashes($HTTP_GET_VARS['s']);
}
$colname1_Recordset1 = "";
if (isset($HTTP_GET_VARS['order'])) {
$colname1_Recordset1 = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['order'] : addslashes($HTTP_GET_VARS['order']);
}
mysql_select_db($database_azubi, $azubi);
$query_Recordset1 = sprintf("SELECT * FROM Auszubildende, berufe, verkn WHERE Auszubildende.name LIKE '$s' OR Auszubildende.vorname LIKE '$s' OR berufe.berufe LIKE '$s' HAVING Auszubildende.az_id = verkn.az_id AND berufe.bid = verkn.bid ORDER BY '$colname1_Recordset1'", $colname_Recordset1,$colname_Recordset1,$colname_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $azubi) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
eigentlich müsste ich ja einfach nur ein "%" vor die Variable hinter LIKE hängen, aber dann geht die ganze abfrage nicht mehr. Weiss jemand vielleicht n Tip, wie ich das trotzdem realisieren kann, das man nur nach teilen des Wortes sucht und der alles ausgibt, was diesen teil enthält??
Vielen Dank
Oli
Probiere mal das aus :
.. like '%".$s."%'...
Oliver
hi,
Probiere mal das aus :
.. like '%".$s."%'...
Oliver
so ging das leider nicht, aber nach n bisserl rumprobieren sind wir auf diese Lösung gekommen:
mysql_select_db($database_azubi, $azubi);
$s = "%".$colname_Recordset1."%";
$s = "%".$s."%";
$query_Recordset1 = sprintf("SELECT * FROM Auszubildende, berufe, verkn WHERE Auszubildende.name LIKE '$s' OR Auszubildende.vorname LIKE '$s' OR berufe.berufe LIKE '$s' HAVING Auszubildende.az_id = verkn.az_id AND berufe.bid = verkn.bid ORDER BY '$colname1_Recordset1'", $colname_Recordset1,$colname_Recordset1,$colname_Recordset1);
weiss allerdings nicht warum er das nur so macht und nicht andersrum. wenn man die beiden Zeilen $s = vertauscht funktioniert es auch nicht. egal, so gehts und das ist gut.
Danke nochmal für Deinen Hinweis...
oli