gibt es eine Array-Funktion die der SELECT Abfrage bei mysql gleicht?
Ich habe leider nichts brauchbares zu meiner Frage im Netz gefunden, daher probier ich es hier.
Für eine AutoSuggest-Funktion eines Formular-Text-Feldes wird bei jedem Tastenschlag eine Datenbankabfrage gemacht und entsprechende Vorschläge unterbreitet. Allerdings dauert dieser Vorgang je Tastendruck ca. 1 Sekunde, bis neue Vorschläge gezeigt werden. Das ist zielmlich langsam, denn wenn man den Text schnell schreibt und Enter drückt, erscheinen keine nützlichen Vorschläge.
Ich möchte also den Vorgang der Datenbankabfrage beschleunigen und hatte dazu die Idee:
Die komplette Datenbanktabelle erst in ein Array speichern. Und anschließend bei jedem Tastendruck das Array abfragen anstatt jedes Mal die Verbindung zur Datenbank aufzubauen. Das müsste dann doch schneller laufen oder?
Hier hole ich die Werte aus der DB und packe diese genau so geordnet in ein Array:
- Code: Select all
$tabelle = Array();
$zeilen = mysql_num_rows($ergebnis);
for ($a = 0; $a < $zeilen; $a++)
{
$tabelle[$a]['nr'] = mysql_result($ergebnis, $a, Nr);
$tabelle[$a][name] = mysql_result($ergebnis, $a, Name);
$tabelle[$a][beruf] = mysql_result($ergebnis, $a, Beruf);
$tabelle[$a][wohnort] = mysql_result($ergebnis, $a, Wohnort);
}
Nun habe ich ja die Tabelle im Array.
Jetzt will ich im Array die gleiche Abfrage machen wie bei mysql
"SELEC * FROM tabelle WHERE Wohnort = 'berlin'"
Beispiel:
mein Array $tabelle sieht z.B. folgendermaßen aus:
- Code: Select all
$tabelle[0] = Array(nr => '1', name => 'Hans', beruf => 'verkäufer', wohnort => 'bonn');
$tabelle[1] = Array(nr => '2', name => 'Markus', beruf => 'lehrer', wohnort => 'berlin');
$tabelle[2] = Array(nr => '3', name => 'Jan', beruf => 'mechaniker', wohnort => 'frankfurt');
$tabelle[3] = Array(nr => '4', name => 'Leo', beruf => 'arzt', wohnort => 'berlin');
Jetzt soll eine Array-Abfrage z.B. nach Wohnort berlin erfolgen und es sollen alle Werte (wie: nr, name beruf,..) des Datensatztes bzw. in diesem Fall der beiden Datensätze ausgegeben werden.
Also knapp ausgedrückt: ich will nach wohnort berlin fragen und am ende die 2 Datensätze: 2, Markus, lehrer, berlin und 4, Leo, arzt, berlin ausgeben können.
Wie kann ich das machen?
Geht die Abfrage beim Array so einfach wie bei mysql? Oder muss ich das komplette Array dann durch eine Schleife jagen und jeden Datensatz einzeln vergleichen? Es geht mir halt um eine Lösung die die AutoSugges-Funktion beschleunigt.
THX
der freundliche samurai