php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.04.2011, 02:01  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 599
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard jQuery UI Autocomplete MySQL - Verbesserung/"Best practise"

Aufgabenstellung:
autocomplete Widget aus dem jQuery UI Framework benutzen um Daten aus einer MySQL Tabelle zu holen.

Ziel:
Bestmögliche Performance mit sauberem Code.

___

Ich habe nun 2 1/2 Stunden für diesen kleinen Code gegoogelt und ihn nach bestem Wissen [Wissen ? ] zusammengeschrieben.

Es geht darum, in einem Textfeld per autocomplete die Eingabe mit einer Tabelle in einer MySQL Datenbank abzugleichen und ggf. die Matches anzuzeigen.

Ein dickes Dankeschön an @Chriz, da ich den Durchbruch durch seinen Post mit Firebug hatte (Link (PHP Array per JSON übertragen)).

Was haltet Ihr vom Quellcode und was kann/sollte man verbessern ?

main.php
PHP-Code:
$(document).ready(function(){
                
                $(
"#input").autocomplete({
                    
minLength1,
                    
cache false,
                    
                    
source: function( requestresponse ) {
                        $.
getJSON("./search.php", {termrequest.term}, function(data) {
                            var 
results = [];
                            
                            $.
each(data, function(i,item){
                                
results.push(item.entry);
                            })
                            
                            
response (results);
                        })
                    }
                });
                
            }); 
search.php
PHP-Code:
<?php 

include 'db.php'

if (!isset(
$_GET["term"])) return; 
        
$param mysql_real_escape_string($_GET["term"]);


// REGEXP = POSIX Standard || ^ = Start of matched expression
$query mysql_query("SELECT * FROM autoComplete WHERE name REGEXP '^$param'");



if (
$numrows 0) {

    
//ich glaub mal gelesen zu haben dass mysql_num_rows schlecht für die performance ist !?
    // Sollte man lieber die Rows gesondert Abfragen ?
    
for ($x 0$numrows=mysql_num_rows($query); $x $numrows$x++) {  
        
$row mysql_fetch_assoc($query);  

        
$entrys[$x] = array("entry" => $row["name"]);  
    }

    
$response json_encode($entrys);  
    echo 
$response;  
} else {
    
    
//No DB Entry
    
echo '[]';
}

?>
Es gibt natürlich auch Hauptbeweggründe weshalb ich frage.

1.) Ist es schlau mysql_num_rows zu nutzen (Siehe Kommentar oben) ?
2.) Ist es schlau, es als JSON ausgeben zu lassen anstatt z.B. einfach per Komma seperierte Werte ?
3.) Was gibt es sonst zu verbessern ?
Miniaturansicht angehängter Grafiken
jquery-ui-autocomplete-mysql-verbesserung-best-practise-unbenannt.jpg  

Geändert von dreamcatcher (01.04.2011 um 02:10 Uhr).
dreamcatcher ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

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
Mysql funktioniert nicht (Erweiterung nicht erkannt!?) pfump Server, Hosting und Workstations 10 17.03.2012 11:07
PHP Zugriff auf MySQL Community Server gewähren daemonTutorials Datenbanken 8 21.02.2011 12:28
Web 2.0 Entwickler mit PHP, JQuery und MySQL kramoo Gewerblich 0 18.01.2011 14:58
MySQL Datentransfer (Dateigroesse 4MB) via Shell Zugang oder einfacher promoterlv Datenbanken 1 14.11.2010 22:12
[Erledigt] PHP bekommt keine Verbindung zu MySQL SaKe Datenbanken 15 20.09.2010 14:45
Mysql fehler bei externen Zugriff SteiniKeule Datenbanken 4 18.06.2010 12:54
PDO MySQL abfrage funktioniert nicht Bloodydead PHP Tipps 2010 8 18.06.2010 11:08
Erkenntnisse aus der MySQL -> Oracle migration Donald Datenbanken 9 13.04.2010 14:24
[Erledigt] MySQL - ERROR 1044 bei erstellen einer Datenbank _youngenterpriser_ Datenbanken 2 05.02.2008 17:56
Mysql Server Einstellunen Optimieren pchero Datenbanken 3 01.05.2007 19:50
[Erledigt] not allowed to connect to this MySQL server PHP Tipps 2005-2 2 23.09.2005 18:34
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
MYSQL läuft nur wenn /tmp auf 777 Datenbanken 5 06.07.2005 08:38
mysql root passwort vergessen Datenbanken 1 29.05.2005 11:33
Access denied for user: '@localhost' / SYSTEM@localhost Datenbanken 0 10.11.2004 20:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
jquery autocomplete mysql, jquery ui autocomplete php, autocomplete jquery mysql, jquery ui autocomplete, jquery ui autocomplete mysql, jquery autocomplete php mysql, php autocomplete mysql, jquery ui autocomplete ajax, autocomplete mysql, jquery autocomplete mysql php, autocomplete php mysql, jquery mysql autocomplete, autocomplete jquery, autocomplete mysql php jquery, ajax autocomplete mysql, autocomplete ajax mysql, jquery autocomplete ajax, jquery ui autocomplete php mysql, jqueryui autocomplete, jquery php mysql autocomplete

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