Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-07-2010, 07:30   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 620
Was ist schneller: Zelle standardmäßig auslesen oder erst auf Inhalt prüfen?

Guten morgen zusammen.

Ich baue gerade eine Datenbank auf die 15 optionale Felder hat. Die meisten von diesen sind leer (sind als Text-Felder definiert).

Ist es sinnvoll zu prüfen ob ein Wert in den Zellen steht und dann dementsprechend den Wert ausließt oder kann man dann genau so gut gleich den Wert auslesen?

Also:
PHP-Code:
if($ergebnisKategorien->Feld1 != ""){
    
$KategorienFeld1 $KategorienFeld1.$ergebnisKategorien->Feld1."§";
}

vs.

$KategorienFeld1 $KategorienFeld1.$ergebnisKategorien->Feld1."§"
Ich hatte auch versucht das Ganze dynamisch zu gestalten. Allerdings bin ich dabei zwecks mangelden PHP-Kenntnissen gescheitert:

PHP-Code:
$i 1;
$varname "Feld";
for ( 
$i$i<=15 $i++){    
        
    $
$varname "Feld".$i;
    if(
$ergebnisKategorien->Feld.$i != ""){
        
$Feld $Feld.$ergebnisKategorien->Feld.$i."§";
    }

MfG Monk
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Alt 15-07-2010, 07:40   #2 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Ich denke da kannst genausogut alles auslesen
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 20-07-2010, 20:19   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 14
Ob es sinnvoll ist, zu prüfen ob die Felder leer sind, hängt davon ab, was du tun willst.


Um ehrlich zu sein, frage ich mich, was du überhaupt erreichen willst.
Ich gehe mal davon aus, dass du alle diese Kategorien-Felder in separate Variablen schreiben willst. Ist denn in $KategorienFeld1 schon was drin, bevor du, wie in deinem Script unten, etwas neues zuweist? In deinem Script hängst du ja etwas an. (btw: du kannst statt stattdessen $KategorienFeld1 .= $ergenisKatego... nehmen).

Kannst du nicht mehr von deinem Script posten damit wir dir besser helfen können?


Dynamisch kannst du so auf Variablen zugreifen.
PHP-Code:
$$varname
$object->$name;
//on the fly:
${'prefix'.$var.$other_var.'text'};
$object->{'prefix'.$var.$other_var.'text'}; 
Alshain ist offline   Mit Zitat antworten
Alt 21-07-2010, 06:34   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 620
Danke für die Antwort Alshain. Das kommt gleich in mein kleines Wiki

Meine Frage hat sich eigentlich darauf bezogen ob es aus sicht der Geschwindigkeit einen unterschied macht ob man Zellen auf Inhalt prüft und dann die Werte einer Variable zuweißt oder gleich alle ohne rücksicht auf Inhalt ausließt.

Zu den Anforderungen meiner Abfrage:
In der Datenbank gibt es eine Tabelle "Kategorien" in dieser Tabelle stehen 15 Spalten welche optionale Eingabefelder von einem Formular darstellen. Wieviele Eingabefelder eine Kategorie hat ist unterschiedlich (max die 15).
Alle Felder werden nach Flash übermittelt.

MfG Monk


p.s. ich greif jetzt auf alle Felder direkt zu.
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Alt 21-07-2010, 13:15   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2010
Beiträge: 14
Natürlich ist es langsamer, wenn du zuerst überprüfst ob ein Wert in der Variable ist.

Du musst aber unterscheiden, ob die Variable einen leeren String beinhaltet, oder ob sie undefined ist. Da bei dir alle Werte aus der Datenbank kommen, sind sie immer definiert. Sie können natürlich einfach "leer" sein.
Aber mach dir mal keine sorgen um die Geschwindigkeit, solche Dinge schlagen sich nicht in der Performance nieder, wohl aber ein schlechter Algorithmus oder ein schlechtes Datenbankdesign.

Du kannst auch mit if(empty($variable)) prüfen, ob die Variable undefined, leer (""), NULL oder ein paar andere Sachen ist.

Mehr dazu hier:
type comparison table
Ein wichtiger unterschied zu deinem Vergleich ist, dass dir PHP keinen Fehler wirft wenn die Variable noch nicht initialisiert wurde.

Zuerst noch zu deiner Datenbank:
"Maximal 15" das klingt schon arg nach "hmm, mehr als 15 werden's schon nicht sein"
Du solltest dein Datenbankdesign vermutlich besser ändern.
Code:
Tabelle Kategorien
id | Name | Und andere Felder die du für jede Kategorie hast
Tabelle Optionale Felder
id | kategorie_id | name
So kannst du beliebig viele optionale Felder pro Kategorie definieren und bist auch das Problem mit den leeren Feldern los.


Falls du dein jetziges Layout beibehalten möchtest, solltest du dennoch mal ein wenig mehr Code posten, um dir Vorschläge für Verbesserungen geben zu können.
Alshain ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
variable auf inhalt prüfen... _kweso ActionScript 3 8 19-11-2009 22:47
datagrid - inhalt einer einzelnen zelle setzen _Zoidberg_ ActionScript 3 2 31-03-2009 16:17
Höhe einer TD Zelle auslesen :: RK :: JavaScript & jQuery 7 23-03-2005 20:09
inhalt einer zelle <td> scrollbar machen </td> boreker HTML und CSS 9 03-11-2004 08:33
db-zelle nur teilweise auslesen Dennis PHP und MySQL 5 09-12-2003 14:38


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:17 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele