PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   2 kleine fragen zu PHP... (http://www.selfphp.de/forum/showthread.php?t=1727)

Xantos 10.07.2002 11:02:38

2 kleine fragen zu PHP...
 
Hi...

Ich habe mal 2 fragen, und zwar wenn ich einen Wert aus der DB hole, und den dann mit Hilfe einer Select Box ausgeben will, wie kann ich es dann schaffen, das die Select Box erkennt welcher Wert das in der DB ist, und dich allein auf diesen Wert einstellt...?!
zum Beispiel steht in der DB eine 5 , und die Select Box stellt sich beim aufrufen der Seite von allein gleich auf die 5...!

Zur zweiten frage... Ich habe mir ein Gästebuch geschrieben, es haben sich da schon ein parr leute eingetragen, und mein Server ist nicht gerader der schnellste(oder besser die DB). Wenn ich jetzt nun meine Seite aufrufe, dann ist der html Text oder besser gesagt die Seite schon zu sehen, und der Teil den ich per Mysql auslese, der kommt erst ein parr sekunden später... giebt es irgendein befehl der das verhindern kann, das zum Beispiel die Seite erst angezeigt wird, wenn alles geladen ist...?!?!

Vielen Danke im Vorraus... :)

HS-78 10.07.2002 11:41:20

Zu Deiner 1. Frage. Ich habe das immer so gelöst:

Code:

  foreach ( $var as $part ) {
    if ( $id == $part["id"] ) {
      $select .= "<option selected>".$part["position"]."</option>
";
    } else {
      $select .= "<option>".$part["position"]."</option>
";       
    }
  }

Wenn dann der darzustellende Wert ($id) mit dem DB Wert ($part['id']) übereinstimmt haut er noch ein selected rein und dieser Eintrag wird ausgewählt.

Matt 10.07.2002 12:09:45

und zum zweiten: ja es gibt eine möglichkeit: ouput buffering: da wird das script in einen buffer geschrieben, und erst bei einem bestimmten befehl zum client geschickt, nachteil davon ist allerdings, dass das für php ein ziemlicher arbeitsaufwand ist, und man sich ernsthaft überlegen sollte, ob man soetwas tuen möchte, da es ziemlich lahm wird, wenn viele user gleichzeitig surfen.

das geht folgendermaßen:
mit ob_start();
kannst du den output buffer starten,
und mit ob_end_flush();
kannst du es beenden und den inhalt an den client senden.
also alles, was zwischen ob_start und ob_end_flush mit print oder sonstigem ausgegeben wird, wird erst bei ob_end_flush abgeschickt, alles was vorher und nachher kommt, wird davon nicht betroffen.
Code:

ob_start();
print "das kommt in den output buffer";
ob_end_flush();
print "das nicht!";

www.php.net/ob_start
www.php.net/ob_end_flush

Matt 10.07.2002 12:15:24

aja, und noch was zu deiner ersten frage:
Was ich recht häufig sehe, und was ich eigentlich auch recht praktisch finde ist, wenn der ausgewählte wert zweimal erscheint: einmal ganz oben in der liste, und weiter unten auf seinem platz nochmals, so ähnlich wie mit den schriftarten in MS Word:
dort hast du auch die bevorzugten (in unserem fall wäre das die vorgewählte), dann einen trennstrich (in unserem fall wäre das einfach "------------" mit einer value die du halt abfangen musst) und dann die normale liste.
Programmiertechnisch gesehen ist es billig, allerdings finde ich das persönlich komfortabler.

Xantos 10.07.2002 12:40:54

Zitat:

Original geschrieben von Matt
aja, und noch was zu deiner ersten frage:
Was ich recht häufig sehe, und was ich eigentlich auch recht praktisch finde ist, wenn der ausgewählte wert zweimal erscheint: einmal ganz oben in der liste, und weiter unten auf seinem platz nochmals, so ähnlich wie mit den schriftarten in MS Word:
dort hast du auch die bevorzugten (in unserem fall wäre das die vorgewählte), dann einen trennstrich (in unserem fall wäre das einfach "------------" mit einer value die du halt abfangen musst) und dann die normale liste.
Programmiertechnisch gesehen ist es billig, allerdings finde ich das persönlich komfortabler.

Hi...

vielen Dank für eure Antworten... So wie du das gesagt hast, mache ich es bis jetzt auch immer, der wert der in der DB steht ganz oben, dann ein -------------- und dannach die normal liste... aber ich dachte das das ein wenig unproffessionell ist... aber gut, ich werde es mir überlegen... :)

Matt 10.07.2002 12:47:05

wenn du es professioneller machen möchtest, hinterlege den obersten eintrag doch einfach mit einer anderen farbe, anstelle einen trennstrich drunte zu machen, oder mach einen trennstrich der nicht einen ganzen eintrag braucht - mit CSS geht das problemlos - dann siehts wieder recht professionell aus denke ich.
und ich persönlich finde das angenehmer, weil ich dann weiss, wie ich zum ursprünglichen eintrag zurückkomme, wenn ich ihn wieder zurückändern will.

Xantos 10.07.2002 13:00:10

Hi again...

das mit dem farbig hervorheben ist ne nette Idee, ich habe es nun so gemacht, das ich es von dem Script vorselectieren lasse, und den Wert der in der DB steht habe ich farbig hervorgehoben, das denke ich ist gut... :)

vielen Dank euch beiden... :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:19:20 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.