Moinsen,
bin immer noch dabei mein CMS zu schreiben .
Leider habe ich nun ein weiteres Problem.
Also ich habe das CMS ja in Blöcken aufgebaut, diese Blöcke werden mittels einer Funktion (Block() ) ausgelesen.
Nun gut, das klappt ja auch perfekt, allerdings sobald ich zum Beispiel einen Block aus einer Datei einlese ( zum Beispiel Login.php ( Name steht in der DB drinne und wird dann per include "login.php" reingeholt), da das schlecht in ner DB ist ).
sieht praktisch so aus:
<?php
global $db, $prefix;
$sql = "select * from ........";
$db -> query($sql);
?>
Das klappt aber nicht , dann liest er zwar alles aus, aber die Blöcke die danach kommen, liest er nicht mehr aus ( ich lese immer eine ganze Seite aus (links, rechts, mitte).
Ich muss immer erst hinschreiben
<?php
global $db, $prefix;
$dc = $db;
$sql = "select * from ........";
$db -> query($sql);
$db = $dc;
?>
Ich muss nur diese beiden Sachen hinschreiben, dann geht es, aber warum geht es ohne diese nicht, das ist nen Problem, weil ich die Querys zählen will und auch sonst ist es nicht schön für den Code, denn dieser wird dadurch nen bisschen unübersichtlich.
natürlich habe ich das Object instanziiert ( in der main.php ), von der Methode query() gibt es nocheine, fetch_array() ( durch die hole ich die Daten).
Dies ist aber eher untwichtig, da das Problem ist, das ich die Restlichen Blöcke einfach nicht ausgelesen kriege.
Hier mal der Generelle Ablauf der Datei ( main.php)
whilte(
block(seite)
--> check ob file oder nicht, wenn nicht dann ausgabe --> render
--> wenn File, dann
blockfileinc--render
)
Das ist ja wie gesagt ne Schleife, damit ich alle Blöcke zum Beispiel von Rechts ausgelesen kriege, aber sobald da ein Block mit Seite drinne ist, wo ich auf die Datenbank zugreifen muss, klappt das System nicht mehr und das auslesen hört bei dem Block auf, bei welchem MySQL zum Einsatz kam.
So hier sind 2 Screenshots:
Richtig:
www.optima-design.de/labil.jpg
Falsch:
www.optima-design.de/labil_prob.jpg
achja und noch der betreffende Quellcode:
Das müsste nach meinem Menschenverstand doch eigentlich funktionieren oder nicht?
Aso ja und nach der Funktion bricht er auch ab:
block_link, das ist ne Funktion, ähnlich nem Template Parser, die wird in die Renderblock funktion geschalten und durchsucht den Block noch nach links, bevor er endgütlig gerendert wird, hier kommen 2 SQL Queries zum Einsatz und es geht auch nicht ohne dieses Work-Around .
nen bisschen zusammeklabaustert aus nem anderen Thread , woran könnte das liegen?
bin immer noch dabei mein CMS zu schreiben .
Leider habe ich nun ein weiteres Problem.
Also ich habe das CMS ja in Blöcken aufgebaut, diese Blöcke werden mittels einer Funktion (Block() ) ausgelesen.
Nun gut, das klappt ja auch perfekt, allerdings sobald ich zum Beispiel einen Block aus einer Datei einlese ( zum Beispiel Login.php ( Name steht in der DB drinne und wird dann per include "login.php" reingeholt), da das schlecht in ner DB ist ).
sieht praktisch so aus:
<?php
global $db, $prefix;
$sql = "select * from ........";
$db -> query($sql);
?>
Das klappt aber nicht , dann liest er zwar alles aus, aber die Blöcke die danach kommen, liest er nicht mehr aus ( ich lese immer eine ganze Seite aus (links, rechts, mitte).
Ich muss immer erst hinschreiben
<?php
global $db, $prefix;
$dc = $db;
$sql = "select * from ........";
$db -> query($sql);
$db = $dc;
?>
Ich muss nur diese beiden Sachen hinschreiben, dann geht es, aber warum geht es ohne diese nicht, das ist nen Problem, weil ich die Querys zählen will und auch sonst ist es nicht schön für den Code, denn dieser wird dadurch nen bisschen unübersichtlich.
natürlich habe ich das Object instanziiert ( in der main.php ), von der Methode query() gibt es nocheine, fetch_array() ( durch die hole ich die Daten).
Dies ist aber eher untwichtig, da das Problem ist, das ich die Restlichen Blöcke einfach nicht ausgelesen kriege.
Hier mal der Generelle Ablauf der Datei ( main.php)
whilte(
block(seite)
--> check ob file oder nicht, wenn nicht dann ausgabe --> render
--> wenn File, dann
blockfileinc--render
)
Das ist ja wie gesagt ne Schleife, damit ich alle Blöcke zum Beispiel von Rechts ausgelesen kriege, aber sobald da ein Block mit Seite drinne ist, wo ich auf die Datenbank zugreifen muss, klappt das System nicht mehr und das auslesen hört bei dem Block auf, bei welchem MySQL zum Einsatz kam.
So hier sind 2 Screenshots:
Richtig:
www.optima-design.de/labil.jpg
Falsch:
www.optima-design.de/labil_prob.jpg
achja und noch der betreffende Quellcode:
PHP-Code:
function blockfile($title, $blockfile, $side = 0) // falls der Block auf eine Blockdatei aufbaut ;)
{
$file = @file("block/$blockfile");
if(!$file)
{
$content = _blocknot; // Wenn was schiefläuft ( Date nicht da, etc. dann einfach nen Fehler ausspucken)
}
else
{
include "block/$blockfile"; // wenn keiner Fehler passiert, die Datei inkludieren
}
PHP-Code:
block_login:
<?php
global $db, $prefix, $user;
$dc = $db;
$gäste = $db -> num_rows($db -> query("select * from ". $prefix ."_online where `gast` = '1'"));
$member = $db -> num_rows($db -> query("select * from ". $prefix ."_online where `gast` = '0'"));
$gesamt = $member + $gäste;
$db = $dc;
$content = "<center>". _on ."". $gäste ."" ._guest ."". $member ."". _member ."";
if(!is_user($user)){
$content .= "<br><br>". _anonym ."</center>";
}
?>
Aso ja und nach der Funktion bricht er auch ab:
block_link, das ist ne Funktion, ähnlich nem Template Parser, die wird in die Renderblock funktion geschalten und durchsucht den Block noch nach links, bevor er endgütlig gerendert wird, hier kommen 2 SQL Queries zum Einsatz und es geht auch nicht ohne dieses Work-Around .
nen bisschen zusammeklabaustert aus nem anderen Thread , woran könnte das liegen?
Kommentar