Author Topic: array push  (Read 1120 times)

0 Members and 1 Guest are viewing this topic.

DocFirestorm

  • Guest
array push
on: Wed, 25. June 2003 - 09:24:43
Hallo!


Da ich sehr viele Daten aus der Datenbank beziehe, stelle ich mir die Frage welche Variante aus Performance gründen besser ist.

bei mir sieht es momentan so aus.

$result = mysql_query("Statement");
$tmpl->setdbloop('loop_sql',$result);

oder wäre es mit array_push(.......)
besser.

DocFirestorm

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
array push
Reply #1 on: Wed, 25. June 2003 - 10:18:03
setdbloop benutzt
Code: [Select]
while$r = mysql_fetch_assoc$result

       $loop_arr = $r;



Bleibt eigentlich nur die Frage übrig: Was ist performater "array_push()" oder die dynamische Zuweisung mit "$loop_arr[] = $r;"?

Ich weiß es nicht, aber ich wette das die Programmierer von PHP kein array_push erfunden hätten, wenn es deutlich in-performanter wäre als die dynamische Zuweisung.

Ich würde es von Deinen Coding-Gedanken abhängig machen. Wenn es schneller und einfacher geht mit "setdbloop", würde ich auch "setdbloop" benutzen. Mit "array_push" bist Du für die Zukunft besser gerüstet, weil Du die Daten auch manipulieren kannst.

Bei meinen Applikationen war aber weder MySQL noch vlibTemplate in irgendeiner Weise der Flaschenhals. Bei mir wird es haarig, wenn die DB 400 Datensätze zurückgibt und in einer Tabelle aufbauen soll.

Quote
SelfHTML: Die Darstellung einer Tabelle ergibt sich zwar automatisch aus den definierten Zeilen und Spalten. Doch für einen Web-Browser ist es nicht ganz einfach, die Darstellung frühzeitig zu ermitteln. Er muss erst die gesamte Tabelle einlesen, bevor er irgendetwas davon darstellen kann. Bei großen Tabellen kann das zu unschönen leeren Bildschirminhalten während des Seitenaufbaus führen.


Fazit: So richitig kann ich Deine Frage nicht beantworten. Da solltest Du vielleicht mal in einem PHP Forum fragen.

DocFirestorm

  • Guest
array push
Reply #2 on: Wed, 25. June 2003 - 10:37:22
ich bin zum selben schluss gekommen, und du hast es noch bestätigt. das hilft mir weiter.

ich habe ein größeres system programmiert wo man auch bestellen kann. jetzt werden zum bestätigen der bestellung an 4 verschiedene email adressen die bestelldaten geschickt. das problem ist das jetzt, jeder von den empfängern 2 mails bekommt. eine mit null werten und eine mit den tatsächlichen daten. das ganze ist noch nach der "alten" Methode programmiert.

bin am überlegen ob ich das system umbauen soll und dies mit vlib mache. Die Frage ist ob dies, mit array_push() beseitigt werden kann. habe das ganze schon x-mal durchgeschaut und auf schleifen fehler durchsucht aber nichts.

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
array push
Reply #3 on: Thu, 26. June 2003 - 09:17:06
Ich an Deiner Stelle würde die Applikation komplett umstellen. Gerade die Verbindung vlibTemplate und vlibMimeMail funktioniert wunderbar und einfach, wie man an folgendem Beispiel sehen kann.

HTML-Datei als Grundlage für Mail benutzen

Wenn Du willst kannst Du Deine bisherige Applikation (als Source-Code; bitte nur den relevanten Teil) mal ins Netz stellen, dann habe ich Zugriff darauf und kann mir das mal ansehen.

Zum darstellen von Sourcen haben sich die Befehle:
Code: [Select]
if $showsource == 1

    

        show_source $SCRIPT_FILENAME;

        exit;

    

    elseif $showsource == 2

    

        show_source dirname__FILE__ . '/tmpl/mail.htm';

        exit;

    

und
Code: [Select]
a href=mail.php?showsource=1show source/a |

a href=mail.php?showsource=2show template/a

als hilfreich herausgestellt.

Gruß
Claus

DocFirestorm

  • Guest
array push
Reply #4 on: Thu, 26. June 2003 - 10:34:55
Hallo!

Jetzt sehe ich erst richtig, wie besch.... es war alles (html und php) in einem file zu haben. aber ich sehe schon ich werde das umbauen müssen auf vlib

hier der source

http://www.appartmenthaus.at/source/test.php?showsource=1

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
array push
Reply #5 on: Thu, 26. June 2003 - 13:15:56
Das sieht doch strukturiert aus.

Schreib die Applikation kurz so um,
- dass die Seite nicht als HTML-Mail sondern auf dem Bildschirm ausgegeben wird
- dann speicherst Du Dir den "Output" Quelltext
- und ersetzt alle statischen Einträge durch Templatevariablen.

Das PHP-Skript sollte dann im Wesentlichen so aussehen:
Code: [Select]
$tmpl = new vlibTemplate'tmpl/mail.htm';



    $mwst         = $zwischensumme / 100 * 20;

    $tmpl-setVar'mwst', $mwst;



    // use grab, which parses and returns the output, instead of pparse

    $htmlbody = $tmpl-grab;



    // now we build the email

    $mail = new vlibMimeMail;

|...|

    // set the html body and then send the email

    $mail-htmlbody$htmlbody;

So würde ich vorgehen. Dass sollte nicht länger dauern als 0,5 bis 1 Stunde. Falls Du LOOPS brauchst, dauert es vielleicht noch etwas länger.

Gruß
Claus

PS: In eigener Sache ... Du hast die Domäne in .at (Austria = Österreich). Könntest Du dort in einigen Foren, in denen Du Dich rumtreibst, ein bißchen Werbung für uns machen? Vielleicht Posts suchen mit Stichwort "Templates" und dann auf vLIB hinweisen? Danke im Voraus!

Yaslaw Kowalejeff

  • Guest
array push
Reply #6 on: Thu, 26. June 2003 - 13:51:29
@Werbung
Sei aber seeehr vorsichtig. Wenns als Werbung auffält, ist es Negativwerbung, denn dies ist meistens nicht gern gesehen (Ich bin in mehreren Foren tätig und da ist man meist sehr Alergisch). ABer mitdiskutieren und dann sagen, dass man selber gut erfahrung hat mit diesem Syste, das ist keine Werbung, sondern Erfahrungsaustausch...

Als Beispiel: Ich habe in einem Forum ein Tutorial geschrieben über "three tier architekutre". ganz am Schluss steht natürlcih:

LINKS:
<a href="/" target="_blank">vLib von activefish</a>
Dieses Templatesystem verwende ich. ist einfach zu handhaben und beitet sehrviel Möglichekeiten und eine hervorragende deutsche Dokumentation.



Yaslaw, hinweisend

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
array push
Reply #7 on: Thu, 26. June 2003 - 15:19:31
Ich habe jetzt mal angefragt, ob ich einen Dokumenations-Werbungspost bei www.dasforum.de machen darf.

Einfach um WebDesigner auf Aurigadoc hinzuweisen (mit der hier alle Dokus erstellt wurden, sowohl meine als auch Kelvins) und ihnen eine kleine Einführung zu geben.

Bis jetzt sieht ein Super-Moderator kein Problem. Aber er fragt mal bei den Admins an.

Gruß
Claus

PS: Danke für das Lob, Yaslaw

DocFirestorm

  • Guest
array push
Reply #8 on: Thu, 26. June 2003 - 17:16:43
Mache ich, ich werde keine Werbung machen aber sicher Empfehlungen. Und linke dann auf die Seite von ClausVB mit den Tuts etc.

Und mein Script werde ich so umbauen, damit werden wieder Fehlerquellen beseitigt. Danke für die Hilfe.