Zurück   klamm-Forum > Virtual World > Programmierung

Like Tree2Likes

Antwort
 
Themen-Optionen
Alt 24.09.2006, 21:47:00   #31
theHacker
sieht vor lauter Ads
den Content nicht mehr
Benutzerbild von theHacker

ID: 69505
Lose senden

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.689
Standard

Zitat:
Zitat von tleilax Beitrag anzeigen
Ich persönlich tendiere zu ===.
Hätt ich eh, wollte nur sichergehen, dass ich das auch richtig mach

Ich habs jetzt geändert und auch noch eine kleine Optimierung eingebaut, da viele Ersetzungen ja auf sich selbst ersetzt haben, was ja unnötig ist. Klick

Mein Benchmark liefert mir:
Zitat:
Starte Vorgang:
Mache 50000 Durchläufe.

Starte langsame mydate():
Dauer: 12,804928 s

Starte schnelle mydate():
Dauer: 12,223703 s
theHacker ist offline   Mit Zitat antworten
Alt 24.09.2006, 22:03:11   #32
tleilax
be forever curious
Benutzerbild von tleilax

ID: 27936
Lose senden

Reg: 20.04.2006
Beiträge: 2.428
Standard

Falls Du noch ein kleines bisschen optimieren willst, return doch gleich und speicher nicht erst noch zwischen.
.lange tage und angenehme nächte, tlx
:.whatthemovie.com (Screenshots raten) | PHP ExportForce-Klasse
tleilax ist offline Threadstarter   Mit Zitat antworten
Alt 24.09.2006, 22:26:16   #33
theHacker
sieht vor lauter Ads
den Content nicht mehr
Benutzerbild von theHacker

ID: 69505
Lose senden

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.689
Standard

Zitat:
Zitat von tleilax Beitrag anzeigen
Falls Du noch ein kleines bisschen optimieren willst, return doch gleich und speicher nicht erst noch zwischen.
Hab ich gemacht und ich hab auch noch die eine if()+Zuweisung durch nur ternärer Operator ersetzt.
Theoretisch müsste ich da ja auch sparen, weil manchmal eine Zuweisung wegfällt.

An Benchmarks kann mans aber nicht wirklich ablesen, ob/was besser is.
theHacker ist offline   Mit Zitat antworten
Alt 25.09.2006, 18:58:40   #34
ice-breaker
return void
Benutzerbild von ice-breaker

ID: 93995
Lose senden

ice-breaker eine Nachricht über ICQ schicken
Reg: 27.04.2006
Beiträge: 6.271
Standard

hmm, also ich denke mal diese nano-sekunden unterschied verkraften alle server schon, ich würde mir da um solche sachen keine gedanken machen, ich denke aber trotzdem das nen array mit dne keys von 1-12 und als wert den namen des monats schneller wären^^
"Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici

www.internet-dsl-flatrate.de
ice-breaker ist offline   Mit Zitat antworten
Alt 25.09.2006, 20:10:27   #35
theHacker
sieht vor lauter Ads
den Content nicht mehr
Benutzerbild von theHacker

ID: 69505
Lose senden

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.689
Standard

Zitat:
Zitat von ice-breaker Beitrag anzeigen
[...]ich denke aber trotzdem das nen array mit dne keys von 1-12 und als wert den namen des monats schneller wären^^
Wie meinst'd ?
Es geht ja um ne date()-Funktion, die auch deutsch arbeitet.

Und im Formatstring nach 'D', 'F', 'l' und 'M' suchen zu lassen, Formatstring ersetzen lassen durch die numerischen Wochentage bzw. Monate und diese dann als Schlüssel mit einem Array zu verwenden, dürfte wohl wesentlich aufwendiger sein.
theHacker ist offline   Mit Zitat antworten
Alt 26.09.2006, 16:20:20   #36
ice-breaker
return void
Benutzerbild von ice-breaker

ID: 93995
Lose senden

ice-breaker eine Nachricht über ICQ schicken
Reg: 27.04.2006
Beiträge: 6.271
Standard

Zitat:
Zitat von theHacker Beitrag anzeigen
Wie meinst'd ?
Es geht ja um ne date()-Funktion, die auch deutsch arbeitet.

Und im Formatstring nach 'D', 'F', 'l' und 'M' suchen zu lassen, Formatstring ersetzen lassen durch die numerischen Wochentage bzw. Monate und diese dann als Schlüssel mit einem Array zu verwenden, dürfte wohl wesentlich aufwendiger sein.
hmm, hast recht
"Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici

www.internet-dsl-flatrate.de
ice-breaker ist offline   Mit Zitat antworten
Alt 27.09.2006, 14:41:57   #37
MrToiz
Erfahrener Benutzer

ID: 72115
Lose senden

Reg: 28.04.2006
Beiträge: 769
Standard

Zu mydate(): Probier doch mal, $replace als static zu...ähh...*wortsuch*...zu declaren.
PHP-Code:
1:
static $replace=array(...); 
 
MrToiz ist offline   Mit Zitat antworten
Alt 11.11.2006, 08:23:26   #38
theHacker
sieht vor lauter Ads
den Content nicht mehr
Benutzerbild von theHacker

ID: 69505
Lose senden

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.689
Standard

Zitat:
Zitat von ActionScripter Beitrag anzeigen
PHP-Code:
1:
SELECT INET_NTOA(ipFROM table WHERE 1 
ACHTUNG: diese funktion existiert nicht unter windows!!
Negativ ! INET_NTOA() und INET_ATON() funktionieren auch unter Windows. Zumindest haben sies bei mir seit Jahren immer getan

@MrToiz:
Oops, hab ich gar nicht gelesen Werd ich bei Gelegenheit mal testen, ob ein static noch was zusätzlich an Geschwindigkeit bringt.
theHacker ist offline   Mit Zitat antworten
Alt 11.11.2006, 10:33:09   #39
ActionScripter
Scripter auf Abruf

ID: 141403
Lose senden
Krank

Reg: 17.10.2006
Beiträge: 484
Standard

Zitat:
Zitat von theHacker Beitrag anzeigen
Negativ ! INET_NTOA() und INET_ATON() funktionieren auch unter Windows. Zumindest haben sies bei mir seit Jahren immer getan
echt? ich hab kein windows, drum kann ich das nicht prüfen ... stand so in der doku. na dann nehme ich die zeile mal raus
Viele Grüsse vom
ActionScripter
ActionScripter ist offline   Mit Zitat antworten
Alt 11.11.2006, 11:16:04   #40
ZeroCCC
wasn das?
Benutzerbild von ZeroCCC

ID: 46810
Lose senden

ZeroCCC eine Nachricht über ICQ schicken
Reg: 10.05.2006
Beiträge: 1.734
Standard

zu den mysql regeln... der insert set syntax gehört zwar nicht zum ansi standard ist aber eine nette sache, solang man nur mysql einsetzt. es ist bedeutent übersichtlicher

PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
INSERT INTO
    daten
SET
    name 
'$_INPUT[name]',
    
vorname '$_INPUT[vorname]',
    
strasse '$_INPUT[strasse]',
    
ort '$_INPUT[ort]',
    
plz '$_INPUT[plz]',
    
land '$_INPUT[land]',
    
tel '$_INPUT[tel]',
    
tel2 '$_INPUT[tel2]',
    
fax '$_INPUT[fax]',
    
vtyp 234,
    
ztyp 345,
    
added NOW(),
    
update NOW(),
    
ip '{$user->IP}',
    
pwd_hash MD5('$key$salt'),
    
user_info_1 '$info1',
    
user_info_2 '$info2',
    
user_info_3 '$info3',
    
user_info_4 '$info4' 
zu schrebien als
PHP-Code:
1:
2:
3:
4:
INSERT INTO
    daten 
(namevornamestrasseortplzlandteltel2faxvtypztypaddedupdateippwd_hashuser_info_1user_info_2user_info_3user_info_4)
VALUES
    
($_INPUT[name]', '$_INPUT[vorname]', '$_INPUT[strasse]', '$_INPUT[ort]', '$_INPUT[plz]', '$_INPUT[land]', '$_INPUT[tel]', '$_INPUT[tel2]', '$_INPUT[fax]', 234, 345, NOW(), NOW(), '{$user->IP}', MD5('$key$salt'), user_info_1 = '$info1', '$info2',  '$info3', '$info4') 
das sind ist jetzt nur ein rein fikitves beispiel... aber man sieht was ich meine. und der ist eigentlich noch harmlos hab schon bessere gesehen. dann entfern mal nen feld oder füg mal eins in der mitte hinzu. warum in der mitte, weil es ist übersichtlicher wenn man die feld reihnfolge wie in der datenbank hat... dann brauch man sich nicht wundern warum das ding nicht das macht was man will, aber auch kein wunder wenn das feld gleich 3 mal in einem query gesetzt wird. und noch was schönes an dem syntax ist man kann den query kopieren und als update verwenden...

und zum * thema... dort wo es sinnvoll ist spricht nix dagegen es einzusetzen, aber nur weil man zufaul ist die felder aufzuschrebien sollte man es natürlich nicht verwenden.
 
ZeroCCC ist offline   Mit Zitat antworten
Alt 11.11.2006, 11:55:30   #41
ActionScripter
Scripter auf Abruf

ID: 141403
Lose senden
Krank

Reg: 17.10.2006
Beiträge: 484
Standard

Zitat:
Zitat von ZeroCCC Beitrag anzeigen
zu den mysql regeln... der insert set syntax gehört zwar nicht zum ansi standard ist aber eine nette sache, solang man nur mysql einsetzt. es ist bedeutent übersichtlicher
ebenso praktisches gegenbeispiel:

PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
$user = array();
$user['name'] = $_INPUT[name],
$user['vorname'] = $_INPUT[vorname],
$user['strasse'] = $_INPUT[strasse],
$user['ort'] = $_INPUT[ort],
$user['plz'] = $_INPUT[plz],
$user['land'] = $_INPUT[land],
$user['tel'] = $_INPUT[tel],
$user['tel2'] = $_INPUT[tel2],
$user['fax'] = $_INPUT[fax],
$user['vtyp'] = 234,
$user['ztyp'] = 345,
$user['added'] = time(),
$user['update'] = time(),
$user['ip'] = $user->IP,
$user['pwd_hash'] = MD5('$key$salt'),
$user['user_info_1'] = $info1,
$user['user_info_2'] = $info2,
$user['user_info_3'] = $info3,
$user['user_info_4'] = $info4


mysql_query
("INSERT INTO daten (".join(",",array_keys($user)).") VALUES ('".join("','",array_values($user))."')" ); 
ich bin eine wandelnde mischung aus minimalist, perfektionist und klugscheisser. daraus ergibt sich, dass ich nur korrekte syntax verwenden möchte (zumindest versuch ich das) und das auch anderen gern beibringe. wenn man die datenbank aus welchem grund auch immer einmal umstellen will/muss, dann habe ich den vorteil, dass meine queries funktionieren. dein set aber nicht mehr.

auch bei mir kann man jederzeit felder entfernen oder hinzufügen etc...

wie gesagt: die korrekte syntax ist die beschriebene. dass die set-syntax manchmal einfacher und übersichtlicher sein kann, hab ich ja nicht bestritten
Viele Grüsse vom
ActionScripter
ActionScripter ist offline   Mit Zitat antworten
Alt 11.11.2006, 14:15:06   #42
ZeroCCC
wasn das?
Benutzerbild von ZeroCCC

ID: 46810
Lose senden

ZeroCCC eine Nachricht über ICQ schicken
Reg: 10.05.2006
Beiträge: 1.734
Standard

Zitat:
Zitat von ActionScripter Beitrag anzeigen
ich bin eine wandelnde mischung aus minimalist, perfektionist und klugscheisser. daraus ergibt sich, dass ich nur korrekte syntax verwenden möchte (zumindest versuch ich das) und das auch anderen gern beibringe. wenn man die datenbank aus welchem grund auch immer einmal umstellen will/muss, dann habe ich den vorteil, dass meine queries funktionieren. dein set aber nicht mehr.
entweder nutz ich die features die mir die datenbank bietet oder nicht... wäre ungefähr so wie wenn man orcale verwendet, aber man sich an ansi 92 hält. hat man viel gekonnt mit... nur weil vielleicht irgendwann mal ne andere datenbank fällig werden könnte.

btw: hast du eigentlich schon mal die datenbank gewechselt? vielleicht zb von mysql4 zu mssql? dann würdest du jetzt nicht solche behauptungen in den raum stellen das deine queries funktionieren würden...
 
ZeroCCC ist offline   Mit Zitat antworten
Alt 11.11.2006, 20:40:33   #43
ActionScripter
Scripter auf Abruf

ID: 141403
Lose senden
Krank

Reg: 17.10.2006
Beiträge: 484
Standard

Zitat:
Zitat von ZeroCCC Beitrag anzeigen
entweder nutz ich die features die mir die datenbank bietet oder nicht...
naja feature ... ist ansichtssache, ob die abweichung vom standard immer gleich ein feature ist?

Zitat:
btw: hast du eigentlich schon mal die datenbank gewechselt?
websachen habe ich bislang nur einmal auf eine centura-db umsetzen müssen. so oft kommt das tatsächlich nicht vor. was aber für mich kein argument ist, sich nicht an sichere standards zu halten ... und zum thema mssql kann ich nicht viel sagen, da ich mich damit nicht auskenne. ich gehe aber mal davon aus, dass der standard-sql-wortschatz funktionieren sollte und demnach mein query es auch tun sollte. aber wie gesagt: nix ahnung von mssql.


aber ich möchte mich hier weder darüber streiten, noch weiter grossartig diskutieren. du hast deine meinung, ich meine. und wenn dir mein artikel in dieser art nicht passt, dann lösche ich ihn gern bevor du dich weiter daran stösst. ebenso wenig produktiv können wir uns auch über m$ und unix in die wolle bekommen und würden wahrscheinlich weder einen gemeinsamen nenner, noch ein ergebnis erzielen.
Viele Grüsse vom
ActionScripter
ActionScripter ist offline   Mit Zitat antworten
Alt 11.11.2006, 21:32:52   #44
ice-breaker
return void
Benutzerbild von ice-breaker

ID: 93995
Lose senden

ice-breaker eine Nachricht über ICQ schicken
Reg: 27.04.2006
Beiträge: 6.271
Standard

öhm, wo ist denn das problem?
ActionScripter hat Code genannt der einfach anzupassen ist und der korrekten MySql (sogar SQL-92) Syntax entspricht und es ging doch gar net um Portierungen ?
wenn es Portabel sein soll, dann hilft doch eh nur ein SQL-Template-System (wobei ich da noch nie ein brauchbares gesehen habe). Denn auch MySQL kann SQL-96 (oder war es 2002?) nicht komplett, da Featureimplementierungen bei den Stored Procedures sowie Triggern fehlen (Trigger können keine Stored Procedures aufrufen)
"Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici

www.internet-dsl-flatrate.de
ice-breaker ist offline   Mit Zitat antworten
Alt 20.11.2006, 13:12:47   #45
raven
Moderator

Reg: 20.04.2006
Beiträge: 5.062
Standard

Zum neuen Random-Signatur Snippet:

PHP-Code:
1:
2:
3:
4:
ob_start(); 
readfilesprintf($url,$_GET['id'],$_GET['aid']) ); 
$data ob_get_contents(); 
ob_end_clean(); 
Aber doch um Himmelswillen nicht so

Entweder, man benutzt file_get_contents() was allerdings weniger zu empfehlen ist, da kein Timeout setzbar, besser angebracht wäre da ganz eindeutig fsockopen() - mit Timeout!
Ein Workaround von tleilax ist imho auch in den Snippets oder im Archiv zu finden.
 
raven ist offline   Mit Zitat antworten
Antwort

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Snippets tleilax FAQ und Archiv 42 16.11.2011 07:08:13
[S] 2 Script-Snippets (JS) 250k je Script ! halbesbit Lose4Scripts 2 20.04.2008 17:02:27


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