php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.11.2008, 09:21   #1 (permalink)
Benutzer
 
Registriert seit: 08.03.2006
Beiträge: 77
Cheesy
Standard [Erledigt] Listenfeld mit 15000 Einträgen performant machen

Hallo,
mein Problem:

Ich möchte ein Listenfeld aus einer Datenbank generieren. Dieses Listenfeld hat ca. 15000 Einträge.
Ich nutze die Template Klasse PHPLib und eine MySQL Datenbank.
Auf dem zu selektierenden Feld welches angezeigt werden soll, habe ich mit einen Index versehen.
Wenn ich das einfach selektiere und an das HTML - Template übergebe, dauert dieses ca. 15 Sek. Dieses ist nicht OK.
Kann mir vielleicht jemand helfen, dieses performanter zu machen?
Cheesy ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 24.11.2008, 09:26   #2 (permalink)
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

D.h. Du hast dann 15.000 <option>irgendwas</option> Elemente in einem <select> ?
Wie soll man denn da sinnvoll drin navigieren?
David ist offline  
Alt 24.11.2008, 09:30   #3 (permalink)
Benutzer
 
Registriert seit: 08.03.2006
Beiträge: 77
Cheesy
Standard

Mann kann doch die Werte eingeben, somit navigiert sich sich das Listenfeld immer zu dem passenden Eintrag.
Cheesy ist offline  
Alt 24.11.2008, 09:35   #4 (permalink)
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Dann interessiert Dich vielleicht eine AJAX-Autocomplete Komponente wie zum Beispiel
- Yahoo! UI Library: AutoComplete
- UI/Autocomplete - jQuery JavaScript Library
- Ajax.Autocompleter &mdash; scriptaculous &mdash; GitHub
David ist offline  
Alt 24.11.2008, 09:41   #5 (permalink)
Benutzer
 
Registriert seit: 08.03.2006
Beiträge: 77
Cheesy
Standard

Nee, eigentlich suche ich nicht eine autokomplete Komponente, sondern wie man es hinbekommt, das Listenfeld schneller zu laden.
Cheesy ist offline  
Alt 24.11.2008, 09:43   #6 (permalink)
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.624
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wie lange benötigt der Query denn auf der Kommandozeile?
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline  
Alt 24.11.2008, 09:53   #7 (permalink)
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

15000 <option> Elemente wirst Du vermutlich nicht "schnell" geladen bekommen.
David ist offline  
Alt 24.11.2008, 10:07   #8 (permalink)
Benutzer
 
Registriert seit: 08.03.2006
Beiträge: 77
Cheesy
Standard

Die Query dauerte auf der Kommandozeile 0.0015 sek
Cheesy ist offline  
Alt 24.11.2008, 10:09   #9 (permalink)
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Also ist das Problem nicht die Abfrage sondern das Senden an und die Aufbereitung im Browser.
Mögliche Lösung: Nicht 15000 option Elemente an den Browser schicken, sondern eine autocomplete Komponente einsetzen.
David ist offline  
Alt 24.11.2008, 10:20   #10 (permalink)
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.786
HPR1974 wird schon bald berühmt werden
Standard

Zitat:
Zitat von Cheesy Beitrag anzeigen
Mann kann doch die Werte eingeben, somit navigiert sich sich das Listenfeld immer zu dem passenden Eintrag.
Ja über den ersten buchstaben kannste navigieren, das wars dann aber auch.
HPR1974 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

 


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
neuer Eintrag in DB speichern und in Listenfeld wiedergeben Raggazzi PHP Tipps 2008 7 06.10.2008 18:16
Tabelle mit 117.649.000.000/567.869.252.000 Einträgen? Datenbanken 11 13.03.2006 18:29
Positionierung im Listenfeld festlegen HTML, Usability und Barrierefreiheit 1 23.11.2005 19:44
Datein in die DB eintragen PHP Tipps 2005 2 01.06.2005 19:54
Listenfeld auslesen PHP Tipps 2005 11 19.05.2005 15:42
Problem mit Bildern, die in eine DB eintragen werden sollen! PHP Tipps 2005 6 05.03.2005 17:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datenbank größe 15000 einträgen

Alle Zeitangaben in WEZ +1. Es ist jetzt 18:29 Uhr.




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