Hallo Leute,
ich brauche mal wieder eure hilfe. Nach dem ich bisher nur mit TXT-"Datenbanken" zu tun hatte, versuche ich mich nun an mysql. Bisher hatte mir Google immer ganz gut geholfen, aber im Moment drehe ich mich im kreis. Ich habe folgende Tabelle und möchte diese nun mit einer Suchfunktion ausstatten.
| vorname | name | plz | ort | strasse |
| Max | Mustermann | 01234 | Ort 1 | Strasse 1 |
| Maximiliane | Musterfrau | 01234 | Ort 2 | Strasse 2 |
An sich kein Problem. Aber das was ich bisher habe (Script weiter unten) ist für meine Ansprüche und die des Kunden nicht ausreichend.
Solange ich mit meinem Script nach "max" suche werden beide treffer gefunden. Suche ich nun nach "max mustermann" wird nichts gefunden da sich dieser Name aus zwei Zellen zusammensetzt. Ebenso wird nichts gefunden wenn ich nach "mus man" suche. Ich konnte bisher weder einen Ansatz noch eine Lösung finden. Könnt ihr mir bitte helfen? Vielleicht hat schon jemand ein fertiges Script oder Snippet mit dem ich weiterarbeiten kann?
Bisher habe ich auch nur WHERE und LIKE benutzt. Oder ist soch eine Suche grundsätzlich nur mit MATCH und AGAINST realisierbar?
Hier eine abgespeckte Version meines php-Codes und der Aufruf über das Formular:
Alles anzeigen
Den HTML-Quellcode kann ich euch leider nicht zeigen da das Board sich dagegen wehrt
.
PS: Das neue Easy-Coding-Board macht bei mir massive probleme! Wenn ich zb. PHP-Code einfüge stellt das Board den ganzen Quelltext erst in einer Zeile dar und bei der Vorschau passt es dann auf einmal. Des weiteren Möchte ich HTML-Code mit Formularfelder einfügen welche erstens als "Richtige" Felder angezeigt werden (Also nicht als HTML-Code) und zweitens ist bei der Vorschau der ganze HTML-Quelltext weg und die Texteinrückungen im PHP-Code ebenfalls. Ich habe es mit dem IE und FF Probiert. Gleiches ergebniss. Mache ich was falsch? Das Alte fand ich besser!
ich brauche mal wieder eure hilfe. Nach dem ich bisher nur mit TXT-"Datenbanken" zu tun hatte, versuche ich mich nun an mysql. Bisher hatte mir Google immer ganz gut geholfen, aber im Moment drehe ich mich im kreis. Ich habe folgende Tabelle und möchte diese nun mit einer Suchfunktion ausstatten.
| vorname | name | plz | ort | strasse |
| Max | Mustermann | 01234 | Ort 1 | Strasse 1 |
| Maximiliane | Musterfrau | 01234 | Ort 2 | Strasse 2 |
An sich kein Problem. Aber das was ich bisher habe (Script weiter unten) ist für meine Ansprüche und die des Kunden nicht ausreichend.
Solange ich mit meinem Script nach "max" suche werden beide treffer gefunden. Suche ich nun nach "max mustermann" wird nichts gefunden da sich dieser Name aus zwei Zellen zusammensetzt. Ebenso wird nichts gefunden wenn ich nach "mus man" suche. Ich konnte bisher weder einen Ansatz noch eine Lösung finden. Könnt ihr mir bitte helfen? Vielleicht hat schon jemand ein fertiges Script oder Snippet mit dem ich weiterarbeiten kann?
Bisher habe ich auch nur WHERE und LIKE benutzt. Oder ist soch eine Suche grundsätzlich nur mit MATCH und AGAINST realisierbar?
Hier eine abgespeckte Version meines php-Codes und der Aufruf über das Formular:
Quellcode
- if($action == "1")
- {
- // Variablen per POST holen
- $m_suche_name = $_POST["m_suche_name"];
- $m_suche_plz = $_POST["m_suche_plz"];
- $m_suche_ort = $_POST["m_suche_ort"];
- // MySql-Datenbank öffnen
- $verbindung = @mysql_connect($mysql_server,$mysql_user,$mysql_passwort) or die("Keine Verbindung zur Datenbank moeglich");
- mysql_select_db($mysql_db_name) or die("Die Datenbank existiert nicht");
- // MySql-Injection unterbinden
- $vorname = mysql_real_escape_string($vorname);
- $name = mysql_real_escape_string($name);
- $plz = mysql_real_escape_string($plz);
- $ort = mysql_real_escape_string($ort);
- $strasse = mysql_real_escape_string($strasse);
- // Suchstring für mysql-Datenbank zusammen stellen
- $mysqlsearchstring = "";
- if ($m_suche_name != "")
- {
- $mysqlsearchstring .= " (vorname LIKE '%".$m_suche_name."%' OR name LIKE '%".$m_suche_name."%')";
- $mysqlsearchstringvorkommnis = "1";
- }
- if ($m_suche_plz != "")
- {
- if ($mysqlsearchstringvorkommnis != "")
- {
- $mysqlsearchstring .= " AND";
- }
- $mysqlsearchstring .= " plz LIKE '".$m_suche_plz."%'";
- $mysqlsearchstringvorkommnis = "1";
- }
- if ($m_suche_ort != "")
- {
- if ($mysqlsearchstringvorkommnis != "")
- {
- $mysqlsearchstring .= " AND";
- }
- $mysqlsearchstring .= " ort LIKE '%".$m_suche_ort."%'";
- }
- unset($mysqlsearchstringvorkommnis);
- // Daten aus MySql-Datenbank holen
- $abfrage = mysql_query("SELECT vorname, name, plz, ort, strasse FROM ".$table_mitglieder." WHERE ".$mysqlsearchstring." ORDER BY name ASC LIMIT ".$start.",20");
- while($row = mysql_fetch_object($abfrage))
- {
- $datensatz_vorname = $row->vorname;
- $datensatz_name = $row->name;
- $datensatz_plz = $row->plz;
- $datensatz_ort = $row->ort;
- $datensatz_strasse = $row->strasse;
- // ausgabe der Datensätze
- echo $datensatz_vorname." ".$datensatz_name."
- ";
- echo $datensatz_plz." ".$datensatz_ort.", ".$datensatz_strasse."
- ";
- }
- // Datenbank-Verbindung schließen
- mysql_close($verbindung) or die("Die Datenbank-Verbindung konnte nicht beendet werden");
- }
Den HTML-Quellcode kann ich euch leider nicht zeigen da das Board sich dagegen wehrt

PS: Das neue Easy-Coding-Board macht bei mir massive probleme! Wenn ich zb. PHP-Code einfüge stellt das Board den ganzen Quelltext erst in einer Zeile dar und bei der Vorschau passt es dann auf einmal. Des weiteren Möchte ich HTML-Code mit Formularfelder einfügen welche erstens als "Richtige" Felder angezeigt werden (Also nicht als HTML-Code) und zweitens ist bei der Vorschau der ganze HTML-Quelltext weg und die Texteinrückungen im PHP-Code ebenfalls. Ich habe es mit dem IE und FF Probiert. Gleiches ergebniss. Mache ich was falsch? Das Alte fand ich besser!
