Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP Suchfeld --> Datenbankbenutzer

Empfohlene Antworten

Veröffentlicht

Hallo,

ich möchte gerne ein Suchfeld erstellen, welches Datenbankbenutzer auslist.

So wie bei Facebook.

Wie funktioneirt so etwas? gibt es eventuell eine gute Seite dafür?

danke an alle

ich bin schon ein bisschen weiter gekommen, aber leider funktionert es nicht.

woran liegt der fehler.

ich will, dass alle namen der tabelle mitglieder gesucht werden können.


<html>
<head>
<title>Ajax Suche</title>
<script type="text/javascript">
function searchFor(suchbegriff){
var xmlHttp = null;
// Mozilla, Opera, Safari sowie Internet Explorer 7
if (typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
if (!xmlHttp) {
// Internet Explorer 6 und älter
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlHttp = null;
}
}
}
// Wenn das Objekt erfolgreich erzeugt wurde
if (xmlHttp) {
var url = "suche.php";
var params = "suchbegriff="+suchbegriff;

xmlHttp.open("POST", url, true);

//Headerinformationen für den POST Request
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");

xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
// Zurückgeliefertes Ergebnis wird in den DIV "ergebnis" geschrieben
document.getElementById("ergebnis").innerHTML = xmlHttp.responseText;
}
};
xmlHttp.send(params);
}
}
</script>
</head>
<body>
<input type="text" onkeyup="searchFor(this.value);"/>
<div id="ergebnis"></div>
</body>
</html>
[PHP]

[PHP]
<?php
// Verbindung
$server = "localhost";
$benutzername = "xxxxxx";
$passwort = "xxxxxx";

$datenbank = "xxxxxx";

// Server Verbindung herstellen
mysql_connect($server,$benutzername,$passwort) or
die ("Keine Verbindung moeglich");

// Datenbank Verbidung
mysql_select_db($datenbank) or
die ("Die Datenbank existiert nicht");

$tabelle = "mitglieder";

if ($_POST["suchbegriff"]){
// Mysql Abfrage wird gespeichert mit den Notwendigen Parameter
$sql = "SELECT * FROM ".$tabelle." WHERE name LIKE ('%".mysql_real_escape_string(utf8_decode($_POST["suchbegriff"]))."%')";

// Mysql Abfrage wird durchgeführt
$result = mysql_query($sql);

// Suchbegriff wird ausgegeben
echo "Sie Suchten nach: ".$_POST["suchbegriff"]."<br/><br/>";

// Ergebnis wird ausgegeben mit Zeilenumbruch
while($row = mysql_fetch_object($result)){
echo utf8_encode($row->titel);
echo "<br/>";
}
}
?>
[/PHP]

sorry für die schlechte darstellung, hier nochmal der code


<html>
<head>
<title>Ajax Suche</title>
<script type="text/javascript">
function searchFor(suchbegriff){
var xmlHttp = null;
// Mozilla, Opera, Safari sowie Internet Explorer 7
if (typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
if (!xmlHttp) {
// Internet Explorer 6 und älter
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlHttp = null;
}
}
}
// Wenn das Objekt erfolgreich erzeugt wurde
if (xmlHttp) {
var url = "suche.php";
var params = "suchbegriff="+suchbegriff;

xmlHttp.open("POST", url, true);

//Headerinformationen für den POST Request
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");

xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
// Zurückgeliefertes Ergebnis wird in den DIV "ergebnis" geschrieben
document.getElementById("ergebnis").innerHTML = xmlHttp.responseText;
}
};
xmlHttp.send(params);
}
}
</script>
</head>
<body>
<input type="text" onkeyup="searchFor(this.value);"/>
<div id="ergebnis"></div>
</body>
</html>
[/PHP]

[PHP]
<?php
// Verbindung
$server = "localhost";
$benutzername = "xxxxxx";
$passwort = "xxxxxx";

$datenbank = "xxxxxx";

// Server Verbindung herstellen
mysql_connect($server,$benutzername,$passwort) or
die ("Keine Verbindung moeglich");

// Datenbank Verbidung
mysql_select_db($datenbank) or
die ("Die Datenbank existiert nicht");

$tabelle = "mitglieder";

if ($_POST["suchbegriff"]){
// Mysql Abfrage wird gespeichert mit den Notwendigen Parameter
$sql = "SELECT * FROM ".$tabelle." WHERE name LIKE ('%".mysql_real_escape_string(utf8_decode($_POST["suchbegriff"]))."%')";

// Mysql Abfrage wird durchgeführt
$result = mysql_query($sql);

// Suchbegriff wird ausgegeben
echo "Sie Suchten nach: ".$_POST["suchbegriff"]."<br/><br/>";

// Ergebnis wird ausgegeben mit Zeilenumbruch
while($row = mysql_fetch_object($result)){
echo utf8_encode($row->titel);
echo "<br/>";
}
}
?>

so, die suche in der datenabnk nach den vorhandenen namen funktoniert einwandfrei.

ich will, dass das suchfeld aufklpatt und die namen anzeigt wie bei facebook.

ich bekome es einfach nicht hin, hab schon alles ausprobiert.

Start.php


<table width="100%" border="1">
<tr>
<td class="leiste"><img src="images/logo.jpg" class="logo">
<input class="search" type="text" onKeyUp="(this.value.length >= 2) ? searchFor(this.value) : '';"><div id="ergebnis"></div>
<a href="logout.php"><img src="images/logout.jpg" class="logout"></a>
</td>
</tr>
</table>
[/PHP]

Suchen.php

[PHP]
<?php
// Verbindung
$server = "xxxxx";
$benutzername = "xxxxx";
$passwort = "xxxxx";

$datenbank = "xxxxx";

// Server Verbindung herstellen
mysql_connect($server,$benutzername,$passwort) or
die ("Keine Verbindung moeglich");

// Datenbank Verbidung
mysql_select_db($datenbank) or
die ("Die Datenbank existiert nicht");

$tabelle = "mitglieder";

if ($_POST["suchbegriff"]){
// Mysql Abfrage wird gespeichert mit den Notwendigen Parameter
$sql = "SELECT id, name FROM ".$tabelle." WHERE name LIKE ('%".mysql_real_escape_string(utf8_decode($_POST["suchbegriff"]))."%')";

// Mysql Abfrage wird durchgeführt
$result = mysql_query($sql);

// Suchbegriff wird ausgegeben
echo "Sie Suchten nach: ".$_POST["suchbegriff"]."<br/><br/>";

// Ergebnis wird ausgegeben mit Zeilenumbruch
//while($row = mysql_fetch_object($result)){
//echo utf8_encode($row->Name);
//echo "<br/>";


echo'<?xml version="1.0" encoding="UTF-8"?> <ergebnis>';
while($person = mysql_fetch_object($result)) {
echo "<a href=profil.php?user=$person->id>$person->name</a>";
echo "<br>";


}
}
?>

style.css (class: search)


.search
{
font-weight:bold;
position:absolute;
margin-top:10px;
color:#000;
margin-left:250px;
}
[/PHP]

die hatte ich auch schon ausprobiert, aber leider ohne erfolg.

ich liegt eigentlich nur am design, nicht am quellcode.

ich will nur, dass wenn man etwas sucht, das ergebnis diretk darunter in einem aufklappmenü erscheint und die seite damit so zu sagen abdeckt. wie bei facebook suche.

nein, wird es leider nicht.

Wie kann ich es so demonstrieren, dass das suchfeld nach dem sucenn ein "aufklappmenü" bekommt mti den suchergebnissen.

das "aufklappmenü" soll dann über dem text natürlich im hintergrund sein

ich habe jezt das input feld search und die ausgabe div in eine form gepackt, funktioneirt auch.

nur wenn ich jetzt suche, dann schreibt er mir das ergebnis untereinander wie ich es will, nur hinter den suchergebnissen gefindet sich noch die anderen schriften von der seite, die sollen weg.

besser mal selber anschauen www.************.org

benutzer: test

passwort: test

und nach tes suchen

danke

************.org

************ punkt org

sorry, hab gerade übesehen, dass man link einfügen kann.

hier nochmal der link zu meiner setie

http://www.************.org

sascha minus graf punkt org

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.