php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Suche mit PHP in einer Access DB


 
mischu19
22-11-2005, 11:27 
 
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:


// 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>";
}
}



Danke und Gruss
Michael

 
onemorenerd
22-11-2005, 11:42 
 
Original geschrieben von mischu19
(sorry, php Formatierung?)Würde funktionieren, wenn du die Tags mit dem VB-Code-Button eingefügt oder dem schließenden Tag per Pedes ein / spendiert hättest. Kannste glauben, kannste nachholen.

 
mischu19
22-11-2005, 11:48 
 
OK die Formatierung hat geklappt.
Manchen muss man auf die Sprünge helfen.

 
mischu19
22-11-2005, 15:45 
 
Ich habe noch was im Netz gefunden und in meinen Code eingebaut, doch leider funktioniert das auch nicht.

$query = "SELECT name, abteilung
FROM data1
WHERE name LIKE '%name%' IS NOT NULL
ORDER BY name";


Kennt denn niemand ne Lösung für das Problem?:(

Gruss Michael

 
onemorenerd
22-11-2005, 16:04 
 
$query = "SELECT name, abteilung FROM data1
WHERE name LIKE '%".$pulldownName."%'
ORDER BY name";

Wenn das noch nicht geschehen ist, solltest du $pulldownName vorher mit mysql_real_escape_string() behandeln, sonst reißt du dir mit dieser Query ein Sicherheitsloch.

 
mischu19
22-11-2005, 16:34 
 
Danke onemorenerd für dein post. Ich habe den Code so abgeändert wie du es geschrieben hast.
Doch leider kriege ich immer noch die Meldung "Es wurden keine Daten gefunden". Wenn ich den zu suchenden Begriff ausschreibe funktioniert es.:confused:

Vielleicht kannst du mir noch etwas helfen?

Danke

 
onemorenerd
22-11-2005, 16:38 
 
Hoppla, die dunkle Seite der Macht (der Gewohnheit) war übermächtig: Ich las was von $query und nahm an es ist MySQL. Du arbeitest aber mit Access.

Sieht so aus als verstünde Access die % im LIKE nicht. :dontknow:
Schau mal im Handbuch/Manual/OnlineHilfe/Google, ich kenne mich mit Access leider kein Stück aus.

 
mischu19
22-11-2005, 16:41 
 
OK, nochmals danke für die Hilfe.
Werde dann mal bei google nachschauen!


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:44 Uhr.