<?
if ($searching =="yes")
{
echo "<h2>Resultat</h2><p>";
if ($find == "")
{
echo "<p>Kein Suchbegriff angegeben.";
exit;
}
mysql_connect("XXX", "XXX", "XXX") or die(mysql_error());
mysql_select_db("XXX") or die(mysql_error());
// Filterungen
$find = strtoupper($find);
$find = strip_tags($find);
$find = trim ($find);
//Suche nach dem Suchbegriff
$data = mysql_query("SELECT * FROM XXX WHERE upper($field) LIKE'%$find%'");
//Resultat anzeigen
while($result = mysql_fetch_array( $data ))
{
echo $result['arzikelnr'];
echo " ";
echo $result['artikelloc'];
echo "<br>";
}
//Ergebnis Zusammenfassung
$anymatches=mysql_num_rows($data);
if ($anymatches == 0)
{
echo "Ihre Such hat keine Ergebnisse geliefert.<br><br>";
}
//Suchbegriff
echo "<b>Sie haben gesucht:</b> " .$find;
}
?>
Leider funktioniert das SO nicht. Und nun weiß ich, dass es damit zusammenhängt, dass Strato register globals auf "off" stehen hat (ich weiss, ist auch gut so). Allerdings bin ich nun völlig überfordert das Script diesbezüglich anzupassen.
Da ich weiss, dass hier einige PHP-Pros sind, hab ich gedacht ich frage mal... :)
Für jede Hilfe bin ich sehr dankbar.
Pocet
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von pocetnick: 24.11.2009 23:34.
leider habe ich nicht viel Zeit, nur so viel, du musst auch Variablen aufnehmen....
Beispiel:
$searching = $_POST['searching'];
Dann sollte es auch gehen.
Hinweis: Da du mit Like arbeitest und dein Form keinerlei Sicherheitsabfragen hat, ist es eine Sache von 2 Sekunden dir deine Datenbanktabelle zu leeren.
Den Sicherheitsaspekt hab ich völlig außen vor gelassen, weil dieses Suchscript nur von mir benutzt werden wird. Aber du hast Recht - ich werde es trotzdem beherzigen. Man weiß ja nie...
Diese Deklaration der Variablen muss ich nur einmal ganz am Anfang machen, oder? Danach reicht der simple Aufruf (Bsp. $searching)?
Vielen vielen Dank, Maschi.
Ich werde deine Tipps umsetzen und mich aufjedenfall nochmal melden.
Kann mir vorstellen, dass das einige von euch sehr holprig finden und würde mich über Tipps weiter freuen.
Ich hab aber noch eine spezielle Frage:
Ich möchte, dass wenn ich ein Wort markiere, es automatisch an PHP zur VErarbeitung übergeben wird. Ist das irgendwie möglich?
deine Frage bezüglich des Markierens eines Wortes und der Übergabe an PHP hab ich nicht so ganz verstanden. Soll, nachdem der Nutzer irgendetwas im Text markiert, automatisch das Script mit den markierten Wort neu geladen werden und nach diesem gesucht werden? (Was wohl etwas doof wäre, weil man ja nicht ständig die Seite neu laden möchte, wenn man was markiert
)
Falls du dennoch sowas machen willst, dann geht sowas mit Javascript. Allerdings ist grade das auslesen von markierten Texten eine browserabhängige Geschichte, weswegen ich dir davon lieber abraten würde.
(Unter IE gibt es dafür das Objekt document.selection)
Hier noch eine Kleinigkeit zu deinem Code, genauer gesagt das HTML darin:
Du solltest das <FONT> Tag nach Möglichkeit nichtmehr verwenden, im neuen HTML 5 Standard soll es dass schon nichtmehr geben und es gilt als "veraltet". Nehm stattdessen entweder <span style="font-family:arial;"> oder ein <div>
Gruß
TSGames
__________________ www.TSGames.de
A new way to express yourself...
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von TSGames: 11.12.2009 15:54.
Das Script wird nur von mir benutzt und in einem per Javascript (Greasemonkey) injizierten IFrame geladen. Insofern würde sich bei jeder Suche nur das IFrame neuladen (wenn ich mich nicht irre :P) - also halb so schlimm.
Würde es also per PHP gehen? Oder is die Variante per JS einfacher / praktikabler? Browserkompatibilität ist kein Problem, es wird zwangsläufig nur FF benutzt.
Das mit <font> werde ich umgehend ändern. Aber nur zum Verständnis; was ist denn konkret der Nachteil dieser Möglichkeit?
Wie funktioniert bspw die Übersetzungsfunktion von der google-Toolbar? Da reicht es ja den Cursor über ein Wort zu platzieren und schon spuckt das Tool die Übersetzung innem Tooltip aus.
also zunächst nochmal kurz zur <font> Geschichte. Primär ging es beim entfernen dieses Tags wohl darum, dass man ja style und Inhalt trennen soll, und deswegen eig. mit CSS-Klassen arbeiten soll (was font ja nicht macht). Jedenfalls gilt der Befehl deshalb laut W3C (meines Wissens) als "invalid", in HTML 5 soll er entfernt werden, und man sollte ihn deshalb meiden ;)
Doch nun zu deiner Frage bezüglich des Markierens...
Ersteinmal musst du Wissen, dass PHP sowas garnicht "kann". Denn PHP arbeitet _nur_ auf dem Server, und verarbeitet dort Skripte, kann aber nix auf Client-Seite machen (und alles, was "dynamisch" ist, ist auf Client-Seite).
Also ist soetwas ein Fall für Javascript.
Ich kenn mich in Javascript jedoch zuwenig aus, um dir zu erklären, wie du jetzt ein "Tooltip"-Feld anzeigen lassen kannst, was die Daten lädt. Die einzigste Variante die ich zeigen kann, ist, wie du die Daten zwar per PHP schon vorher in den Quelltext schreibst, jedoch erst beim Fahren über ein Wort ausgibst
<script type="text/javascript">
function onhover(element,info)
{
var x=document.getElementById(element).offsetLeft+20; // Position speichern
var y=document.getElementById(element).offsetTop+20;
document.getElementById("info").style.display=""; // Info sichtbar machen
document.getElementById("info").style.left=x;
document.getElementById("info").style.top=y;
document.getElementById("info").firstChild.nodeValue=info;
}
function hide()
{
document.getElementById("info").style.display="none"; // Info ausblenden
}
</script>
<label id="info" style="background-color:#cccccc;position:absolute;display:none;">...</label>
<!-- Das Info-Label, das Später als Tooltip eingeblendet wird-->
<span id="test" onMouseOut="hide()" onMouseOver="onhover('test','Ergebnisse für Neuer...')">Neuer</span> <span id="test2" onMouseOut="hide()" onMouseOver="onhover('test2','Ergebnisse für Eintrag')">Eintrag</span>
Einfach mal in eine HTML-Datei kopieren und testen. Ist sicherlich nicht das, was du dir vorgestellt hast, aber vielleicht ein Ansatz.
Gruß
TSGames
__________________ www.TSGames.de
A new way to express yourself...
Okay, vielen Dank für deine Hilfe - aber wenn ich sehe, wieviel Code es brauch, um einen simplen Tooltip anzuzeigen, kriege ich es mit der Angst zu tun. ^^
Ich als Timeliner werde wohl ordentlich umdenken müssen. Aber ich werde es versuchen... :)