php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.11.2005, 13:45  
Gast
 
Beiträge: n/a
Standard PHP Abfage von einer Access DB

Hallo zusammen

Ich habe ein Telefonbuch das in einer Access Datenbank angelegt ist.
Nun mach ich via PHP eine Suchabfrage und gebe das Resultat in
unserem Intranet aus.
Mein Problem ist, dass eine Abfrage nur möglich ist, wenn ich den gesuchten Name
voll ausschreibe. Nun möchte ich gerne, dass mir die Suche schon beim Teilwort eine Auswahl an DB Einträgen ausgibt.

Beispiel, ich suche nach Muster.

Situation jetzt:
Muster in das Suchfeld eintragen, da sonst nichts gefunden wird.

Gewünschte Suchabfrage:
Mu in das Suchfeld eintragen und es werden Muster, Munz, Muler... etc ausgegeben.

Ich hoffe mir kann jemand helfen.

Ein Teil meines Suchcodes sieht so aus:

PHP-Code:
   // -------------------------------------------------------
   // Create SELECT List with Name(Abteilung)
   // -------------------------------------------------------
   
function select_name_abteilung($connection$pulldownName)
   {
      
//
      // Query to find name,abteilung (seems to be distinct)
      
$query "SELECT name, abteilung
                  FROM data1
                 WHERE name IS NOT NULL
                 ORDER BY name"
;
      
//
      // Run the Query
      
if (!($resultId = @ odbc_exec($connection$query))) {
         
$err "Error Executing SQL Query: " $query;
         exit(
$err);
      }
      
//
      // Start the select widget
      
print "\n<select name=\"{$pulldownName}\">";
      
//
      // The first Entry is to show All (no WHERE clause)
      
print "\n<option selected value=\"Alle\">Alle</option>";
      
//
      // Retrieve each row from the query
      
while (odbc_fetch_row($resultId))
      {
         
// Get the value for the column
         
$name odbc_result($resultId,"Name");
         
$abteilung odbc_result($resultId,"Abteilung");
         
$result $name " (" $abteilung ")";
         print 
"\n<option value=\"{$result}\">{$result}";
         print 
"</option>";
      }
   } 

Ich hoffe sehr, dass mir hier jemand helfen kann.

Danke und Gruss
Michael
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.11.2005, 15:16  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

WHERE name = "Mu%"

evl.

WHERE name LIKE "Mu%"


Das % ist bei MS SQL das gleiche wie *
HStev ist offline  
Alt 22.11.2005, 15:54  
Gast
 
Beiträge: n/a
Standard

Danke, für deine Antwort.
Ich glaube aber, du hast da was falsch verstanden.
Ich suche eine Abfragemöglichkeit mit PHP in Access die es ermöglicht, dass wenn ich z.B. nach Bahn suche mir Bahn, Bahnhof, Bahngleis etc ausgewiesen werden. Das Ganze ist ein internes Telefonbuch und manchmal weiss der User nicht, wie genau sich ein Name schreibt. In diesem Fall sollte er die Nummer mit ein paar Buchstaben finden.

Solltest du „Mu“ als Platzhalter gemein haben, so funktioniert das mit Access auch nicht.

Gruss Michael
 
Alt 22.11.2005, 15:58  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich denke das was HStev gepostet hat, ist genau das was du suchst: Platzhalter / Wildcards. Hast dus denn mal ausprobiert?
Zergling-new ist offline  
Alt 22.11.2005, 21:36  
Gast
 
Beiträge: n/a
Standard

Hallo Zergling

Ich muss gestehen dass ich ein Anfänger in php bin. Ich habe auch schon was von Wildcards gehört, doch nie richtig einordnen können. Was ich probiert habe ist

PHP-Code:
$query "SELECT name, abteilung 
                  FROM data1 
                 WHERE name LIKE '%name%' IS NOT NULL 
                 ORDER BY name"

...dann...

PHP-Code:
$query "SELECT name, abteilung 
                  FROM data1 
                 WHERE name LIKE '%.$pulldownName.%' IS NOT NULL 
                 ORDER BY name"

...oder...

PHP-Code:
$query "SELECT name, abteilung 
                  FROM data1 
                 WHERE name LIKE '%.$connection.%' IS NOT NULL 
                 ORDER BY name"

etc...
funzt alles nicht.

Ich denke auch, dass ich sicher auf dem richtigen Weg bin, doch verstehe ich zu wenig um nicht Tausende von Variationen zu testen.

Wenn Du mir einen Tipp hättest, wäre ich dir sehr dankbar.

Gruss Michael
 
Alt 22.11.2005, 22:04  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Wofür verwendest du IS NOT NULL?

Richtig wäre es so (vorrausgesetzt Access verhält sich da so, wie es MySQL tut):
PHP-Code:
<?php
    $query 
"SELECT
                    name,
                    abteilung
                FROM
                    data1
                WHERE
                    name LIKE '%$connection%'
                ORDER BY
                    name"
;
?>
xabbuh ist offline  
Alt 22.11.2005, 22:49  
Gast
 
Beiträge: n/a
Standard

IS NOT NULL benötigt das Script, weil neben dem Textfeld ein Dropdown Feld ist, bei dem der User alle Namen
aus der Access DB aufgelistet bekommt und sich seinen so aussuchen kann. Auf alle Fälle gibt das Dropdown
nur noch die Variante "alle auswählen" an, wenn ich den IS NOT NULL Code weglasse.


PHP-Code:
WHERE  name LIKE '%$connection%' 
hab ich auch schon probiert. Der einzige Unterschied war das es bei mir
PHP-Code:
WHERE  name LIKE '%.$connection.%' 
hiess.
 
Alt 22.11.2005, 23:50  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zitat:
Zitat von xabbuh
Richtig wäre es so (vorrausgesetzt Access verhält sich da so, wie es MySQL tut):
evl. must andere Hochkommatas verwenden aber ansonsten sieht die Syntax richtig aus


WHERE name LIKE '%name%' IS NOT NULL

würde nicht funktionieren wenn dann

WHERE name LIKE '%name%' AND name IS NOT NULL
HStev ist offline  
 


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
aus PHP eine MS Access DB erstellen dh1sbg PHP-Fortgeschrittene 2 10.03.2008 10:15
MySQL to Access - INSERT INTO zu langsam bendigo Datenbanken 0 23.11.2005 16:33
Access Datenbank in MySQL Datenbank umwandeln karl Datenbanken 1 19.10.2005 17:04
Access Frage - Datenbankverbindung abfragen reimondo Off-Topic Diskussionen 1 01.10.2005 18:24
Problem mit MyODBC und Access fxp Datenbanken 0 04.07.2005 11:55
Daten von MySQL nach Access schaufeln Datenbanken 8 24.03.2005 09:58
You can't access this file directly... <--lol? PHP Tipps 2004-2 2 13.12.2004 18:15
MS Access &amp;amp; ODBC : Gibts DATE_FORMAT Funktion? Datenbanken 2 02.12.2004 14:36
Access denied for user: '@localhost' / SYSTEM@localhost Datenbanken 0 10.11.2004 20:35
You don't have permission to access????? PHP Tipps 2004 3 13.10.2004 14:05
PHP has encountered an Access Violation at 010573CD PHP Tipps 2004 3 14.09.2004 14:19
[Erledigt] Mysql und Microsoft Access verbinden Datenbanken 4 20.07.2004 18:14
Abfrage auf eine Access Datei PHP Tipps 2004 4 19.07.2004 10:22
ACCESS Datenbank in Homepage darstellen !! --Hilfe-- PHP Tipps 2004 7 29.06.2004 17:58
[Problem] ADOdb -> Access (.mdb) freq.9 PHP Tipps 2004 5 16.06.2004 16:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
suchfeld php mit access

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:46 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.