Author Topic: vLib Dokumentation (Ergänzungen)  (Read 643 times)

0 Members and 1 Guest are viewing this topic.

Zephyrus

  • Guest
vLib Dokumentation (Ergänzungen)
on: Sun, 21. September 2003 - 22:11:21
Hi vLib Freaks & Freunde :P

Dieses Posting soll ausschließlich(!!!) Ergänzungen zur vLib Doku enthalten, sowie Diskussionen um die Ergänzungen. Also wenn euch etwas aufgefallen ist oder ihr ein interessantes neues feature für vLib gebastelt habt, dann einfach hier mal melden  :)

Ich will dann mal den Anfang machen.

Kapitel 7: Einfache Datenbank Ausgabe

In Kapitel 7 (und nachfolgenden Kapiteln) wird eine veraltete Variante verwendet für den Query auf die Datenbank.

Alt: mysql_db_query

Seit PHP 4.0.6: mysql_query

Das Beispiel sollte dann so aussehen:

vlibTemplate_db_simple.php
Quote

<?php
    require_once \"../vlibTemplate.php\";

    $tmpl = new vlibTemplate('tmpl/vlibTemplate_db_simple.htm');
   
    // DATABASE variables
    require_once \"db_config.php\";

    $connect = mysql_connect($db_host, $db_user, $db_pw);

    $select = \"SELECT name, city FROM $db_table\";

    // Ergänzung 1
    mysql_select_db($dbname);
    $result = mysql_query($select);

    $tmpl->setdbloop('table_data', $result);

    $tmpl->pparse();

    // Ergänzung 2
    // Freigeben des Resultsets
    mysql_free_result($result);
    // schliessen der Verbinung
    mysql_close($connect);
?>


Die alte Variante funktioniert natürlich auch noch, ist allerding veraltet und sollte seit PHP 4.0.6 nicht mehr verwendet werden. Wer noch PHP 3 verwendet auf seinem Server, sollte allerdings die alte Variante wählen.[/url]

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
vLib Dokumentation (Ergänzungen)
Reply #1 on: Sun, 21. September 2003 - 23:14:23
Ich muss leider widersprechen.

Natürlich ist diese Funktion seit PHP 4.0.6 "depricated", aber sie ist trotzdem imho eindeutiger als die zwei Befehle, die sie ersetzen sollen.

resource mysql_query ( string query [, resource link_identifier])

wird ohne den "mysql_select_db" nicht funktionieren.

Eine zusätzlich Zeile macht meine Doku aber länger und vielleicht auch komplizierter.

Ich halte "mysql_db_query" für kurze Beispiele imho verständlicher. Außerdem funktioniert AFAIK Replikation nur mit "mysql_db_query" (siehe php.net).

In Applikationen verwende ich allerdings zu 80% die von Zephyrus genannte Kombination.

Sollte die Funktion jedoch mit PHP5 ungültig werden, werde ich mein Beispiel sofort ändern.


---------

"mysql_free_result" ist für eine Template-Anfänger Doku gänzlich überflüssig, denn

"Die Funktion muss nur dann aufgerufen werden, wenn Sie sich bei Anfragen, die große Ergebnismengen liefern, Sorgen über den Speicherverbrauch zur Laufzeit des PHP-Skripts machen. Nach Ablauf des PHP-Skripts wird der Speicher ohnehin freigegeben." (php.net)

Bei meinen Beispiel werden nun wirklich keine großen Ergebnismengen zurückgeliefert.

-----------

Was ich jedoch bald ergänze ist Zypherus Beispiel aus dem anderen Post mit der List-Box-Klasse, allerdings mit dem normalen "setdbloop". (Wenn ich darf :-).)

Was interessant wäre und woran ich mich machen werden, wenn Kelvin mir erlaubt es in das CVS aufzunehmen ist Zypherus "List-Box-Klasse" so abgewandelt, dass man "einfache" (eindimensionale) Arrays direkt in das Template parsen kann ohne den Array aufzubereiten.

Gruß
Claus

Zephyrus

  • Guest
vLib Dokumentation (Ergänzungen)
Reply #2 on: Mon, 22. September 2003 - 11:12:26
>wird ohne den "mysql_select_db" nicht funktionieren.

Darum hatte ich das mit im Beispiel Source angegeben.

>Eine zusätzlich Zeile macht meine Doku aber länger und vielleicht
>auch komplizierter.

Klar, das verstehe ich. Ich wollte auch nur darauf hinweisen. Man muss es ja nicht so machen, wie ich beschrieben hatte. Ich hatte dies nur in der PHP Doku gelesen, da ich selber grad an einem großen Shop bastel und vLib verwende. Da ich mittlerweile ein echter Freund von vLib bin, weils einfach und geil ist, wollte ich nur auf die Neuerung hinweisen  :wink:

>Außerdem funktioniert AFAIK Replikation nur mit "mysql_db_query"
>(siehe php.net).

Siehste, das muss ich mir doch mal durchlesen, danke für den Hinweis  :)

>"mysql_free_result" ist für eine Template-Anfänger Doku gänzlich
>überflüssig, denn [...]

Ist richtig aber wer seine Applikationen aufgrund der Doku baut und eventuell vergrößert, sich aber halt nicht so auskennt, für den kann das zumindest ein Hinweis sein, das sowas später mal erforderlich ist. Grundsätzlich hast du aber recht, das man die Doku nicht verkomplizieren sollte.

>Was ich jedoch bald ergänze ist Zypherus Beispiel aus dem anderen Post
>mit der List-Box-Klasse, allerdings mit dem normalen "setdbloop".
>(Wenn ich darf :)

Nein, also wirklich. Das geht absolut nicht, hihihihi  :lol:
Doch klar, ich freu mich, wenn sie einen Nutzen für alle hat, mach einfach wie du meinst, vielleicht kannst du mich ja irgendwo im Kleingedruckten erwähnen :)

Ansonsten schön, das man hier "zusammen" arbeitet :)