php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.11.2006, 00:58  
Erfahrener Benutzer
 
Registriert seit: 03.11.2004
Beiträge: 289
Soese
Standard MySQL Datenbank -> komplett durchsuchen

Hallo wie kann ich meine mySQL Datenbank "komplett" durchsuchen.
Ich möchte gerne in meiner "Mitglieder" Datenbank nach Namen oder Straße oder was auch immer suchen können.

PHP-Code:
SELECT FROM `MitgliederWHERE LIKE "suchwort" 
geht leider nicht

Wie kann ich nach einem Suchwort / oder mehreren Suchwörter in meiner Datenbank suchen.

Vielen Dank für eine Idee

Wenn das Thema schon mal behandelt worden ist, dann habe ich es leider nicht gefunden.
__________________
I know a little bit of everything and a lot of nothing…
Soese ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.11.2006, 01:31  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard Re: MySQL Datenbank -> komplett durchsuchen

Zitat:
Zitat von Soese
PHP-Code:
<?php SELECT FROM `MitgliederWHERE LIKE "suchwort"
das ist ja nicht dein kompletter php code oder?
php->mysql_funktionen

das zweite * muss weg und durch einen spaltenname ersetzt werden. du müsstest demnach jeden spaltenname einzeln angeben.

aber zu like, ich machs immer so: (% ist ein platzhalter)
Code:
SELECT * FROM `Mitglieder` WHERE spaltenname LIKE CONVERT( _utf8 "%Suchwort%" USING latin1 )
gruß
brian johnson ist offline   Mit Zitat antworten
Alt 25.11.2006, 11:09  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Du musst jede Tabelle und jede Spalte explizit angeben, in der du suchen möchtest.

Code:
SHOW TABLES
SHOW COLUMNS FROM `tabelle`
Außerdem solltest du, wenn du schon LIKE benutzt, auch Wildcards einsetzen, also %

Code:
SELECT * FROM `tabelle` WHERE `spalte1` LIKE '%suchwort%' OR `spalte2` LIKE '%suchwort%'
Zergling-new ist offline   Mit Zitat antworten
Alt 25.11.2006, 11:15  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von Zergling
Du musst jede Tabelle und jede Spalte explizit angeben, in der du suchen möchtest.
[...]
Außerdem solltest du, wenn du schon LIKE benutzt, auch Wildcards einsetzen, also %

Code:
SELECT * FROM `tabelle` WHERE `spalte1` LIKE '%suchwort%' OR `spalte2` LIKE '%suchwort%'
Oder wenn ihm ein "einfacher Vergleich" reicht und er auf die wildcards verzichten kann:

SELECT xy FROM tabelle WHERE "suchwort" IN(spalte1, spalte2, spalte3)

Spart etwas Schreibarbeit.
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 25.11.2006, 12:22  
Erfahrener Benutzer
 
Registriert seit: 03.11.2004
Beiträge: 289
Soese
Standard

PHP-Code:
SELECT xy FROM tabelle WHERE "suchwort" IN(spalte1spalte2spalte3
der Vorschlag ist Super, geht der auch mit der LIKE funktion %suchwort% ? oder wie kann ich das machen ?

Oder auch wie ich z.B. 2 Wörter aus verschiedenen Tabellen eingeben kann und er diese Kombination findet (z.B. Vor- und Nachname)


Sonst erstmal DANKE für die Antworten
__________________
I know a little bit of everything and a lot of nothing…
Soese ist offline   Mit Zitat antworten
Alt 25.11.2006, 14:17  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Nein geht nicht mit LIKE.

Was meinst du mit
Zitat:
2 Wörter aus verschiedenen Tabellen eingeben
Zergling-new ist offline   Mit Zitat antworten
Alt 25.11.2006, 15:06  
Erfahrener Benutzer
 
Registriert seit: 03.11.2004
Beiträge: 289
Soese
Standard

so geht es ganz gut:

PHP-Code:
SELECT *
FROM Mitglieder
WHERE Strasse LIKE 
'%$seach%' OR Hausnummer LIKE '%$seach%' OR Name1 LIKE '%$seach%' OR Vorname1 LIKE '%$seach%' OR Name2 LIKE '%$seach%' OR Vorname2 LIKE '%$seach%' 
Wie mache ich es, wenn ich nach Vor- und Nachnamen gleichzeitig (z.B. Max Muster) oder Straße mit Hausnummer suchen will, also die Kombination.
__________________
I know a little bit of everything and a lot of nothing…
Soese ist offline   Mit Zitat antworten
Alt 25.11.2006, 15:33  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Es heißt search.

Code:
SELECT `id`, 'tabelle1' FROM `tabelle1` WHERE `spalte1` LIKE '%suchwort1%' OR `spalte2 LIKE '%suchwort1%' OR `spalte1` LIKE '%suchwort2%' OR `spalte2` LIKE '%suchwort2%'
UNION ALL
SELECT `id`, 'tabelle2' FROM `tabelle2` ..
So kannst du dir alle IDs aller Tabellen heraussuchen, auf die mindestens ein Suchbegriff trifft.

Generier dir aber am Besten das SQL-Statement.

- Lies dir mit "SHOW TABLES" alle Tabellen der Datenbank aus oder erstell einen Array mit Tabellen, die durchsucht werden sollen
- Lies dir alle Spaltennamen der Tabellen aus "SHOW COLUMNS FROM tabelle"
- Kombiniere alle Suchwörter (explode() bei Leerzeichen) mit allen Spalten (mittels spalte LIKE '%suchwortX%') und verknüpf sie mir OR
Zergling-new ist offline   Mit Zitat antworten
Alt 25.11.2006, 15:33  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard

PHP-Code:
<?php 
$search 
strtolower($search);
$searchwords explode(' '$search);
$where1 = array();
foreach (
$searchwords as $searchword) {
    
$where2     = array();
      
$where2[]     = " LOWER(Strasse) LIKE '%$searchword%'";
    
$where2[]     = " Hausnummer LIKE '%$searchword%'";
    
$where2[]     = " LOWER(Name1) LIKE '%$searchword%'";
    
$where2[]     = " LOWER(Name2) LIKE '%$searchword%'";
    
$where2[]     = " LOWER(Vorname1) LIKE '%$searchword%'";
        
$where2[]     = " LOWER(Vorname2) LIKE '%$searchword%'";
    
$where1[]      = implode' OR '$where2 );
}
$where implode' OR '$where1 );

SELECT *
FROM Mitglieder
WHERE 
$where )
?>
So in etwa.
Gruß
Tine
tinchen ist offline   Mit Zitat antworten
Alt 25.11.2006, 15:35  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

@Tinchen, strtolower() und LOWER() brauchst du nicht, MySQL-Vergleiche sind nicht case-sensitive.
Zergling-new ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mit php dynamisch Namen von Bildnamen sowie Pfad in mysql Datenbank speichern mallmis PHP Tipps 2008 1 19.11.2007 23:04
Adresse zur MySQL Datenbank Marian Datenbanken 4 10.08.2005 09:47
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? PHP Tipps 2005-2 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
[Erledigt] Verständnisfrage OOP - Objekte in MySQL Datenbank schreiben? PHP Tipps 2005 2 19.05.2005 21:40
mit mysql und php eine datenbank erstellen? Großes Problem PHP Tipps 2004-2 1 16.12.2004 14:53
bin ich blöd???? Mysql Datenbank Passwort becks123 Datenbanken 3 29.10.2004 14:11
[Erledigt] MySQL findet Datenbank nicht Datenbanken 10 21.10.2004 09:14
Formular in Mysql Datenbank speichern Anuschka Datenbanken 1 15.08.2004 02:55
[Erledigt] Mysql Datenbank durchsuchen - Tutorial Datenbanken 5 10.07.2004 13:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/datenbanken/42893-mysql-datenbank-komplett-durchsuchen.html, mysql komplette tabelle durchsuchen, mysql like lower, mysql komplett durchsuchen, mysql datenbank komplett durchsuchen, mysql alle tabellen durchsuchen, mysql tabelle durchsuchen, mysql datenbank durchsuchen, datenbank komplett durchsuchen, mysql durchsuchen, komplette mysql durchsuchen, mysql tabelle komplett durchsuchen, mysql lower like, komplette mysql db nach inhalt durchsuchen, mysql like convert, komplette datenbank durchsuchen php, sql komplette datenbank durchsuchen, mitgliederdatenbank mysql, mysq datenbank nach namen durchsuchen, php mysql vor nachname durchsuchen

Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.